python读取LMDB中图像的方法


Posted in Python onJuly 02, 2018

本文实例为大家分享了python读取LMDB中的图像具体代码,供大家参考,具体内容如下

图像数据写入LMDB之后最好再按照写入的逻辑反向解析写入的图像,如果图像能够被还原则证明写入方式是没有问题的。

from PIL import Image

def read_from_lmdb(lmdb_path,img_save_to):
 try:
  lmdb_env=lmdb.open(lmdb_path, map_size=3221225472)
  lmdb_txn=lmdb_env.begin()
  lmdb_cursor=lmdb_txn.cursor()
  datum=caffe.Datum()

  datum_index=0
  for key,value in lmdb_cursor:
    datum.ParseFromString(value)
    label=datum.label
    data=datum.data
    channel=datum.channels
    print ('Datum channels: %d' % datum.channels)
    print ('Datum width: %d' % datum.width)
    print ('Datum height: %d' % datum.height)
    print ('Datum data length: %d' % len(datum.data))
    print ('Datum label: %d' % datum.label)

    size=datum.width*datum.height
    pixles1=datum.data[0:size]
    pixles2=datum.data[size:2*size]
    pixles3=datum.data[2*size:3*size]
    #Extract images of different channel
    image1=Image.frombytes('L', (datum.width, datum.height), pixles1)
    image2=Image.frombytes('L', (datum.width, datum.height), pixles2)
    image3=Image.frombytes('L', (datum.width, datum.height), pixles3)
    #注意三通道的顺序,如果LMDB中图像是按照BGR存储的则需要按照:image3,image2,image1的顺序合并为RGB图像。PIL中图像是按照RGB的顺序存储的
    image4=Image.merge("RGB",(image3,image2,image1))
    image4.save(img_save_to+str(key)+".jpg")
    datum_index+=1
    print "extracted"

 finally:
   lmdb_env.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自动化运维之IP地址处理模块详解
Dec 10 Python
python 多个参数不为空校验方法
Feb 14 Python
python实现nao机器人手臂动作控制
Apr 29 Python
Python 中Django安装和使用教程详解
Jul 03 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
python 数据提取及拆分的实现代码
Aug 26 Python
Pyqt5自适应布局实例
Dec 13 Python
python中format函数如何使用
Jun 22 Python
解决python打开https出现certificate verify failed的问题
Sep 03 Python
python 实现一个简单的线性回归案例
Dec 17 Python
Qt自定义Plot实现曲线绘制的详细过程
Nov 02 Python
python百行代码实现汉服圈图片爬取
Nov 23 Python
python读写LMDB文件的方法
Jul 02 #Python
对numpy中的数组条件筛选功能详解
Jul 02 #Python
python matlibplot绘制多条曲线图
Feb 19 #Python
python matlibplot绘制3D图形
Jul 02 #Python
对numpy Array [: ,] 的取值方法详解
Jul 02 #Python
Python使用itertools模块实现排列组合功能示例
Jul 02 #Python
python绘制立方体的方法
Jul 02 #Python
You might like
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
在IE浏览器中resize事件执行多次的解决方法
2011/07/12 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
python验证码识别的实例详解
2016/09/09 Python
django 多数据库配置教程
2018/05/30 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
python三引号输出方法
2019/02/27 Python
python 实现简易的记事本
2020/11/30 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
欢迎领导标语
2014/06/27 职场文书
五一劳动节活动总结
2015/02/09 职场文书
消费者投诉书范文
2015/07/02 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
Python日志模块logging用法
2022/06/05 Python