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 open读写文件实现脚本
Sep 06 Python
将Python中的数据存储到系统本地的简单方法
Apr 11 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
python+pyqt5编写md5生成器
Mar 18 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 Python
在django view中给form传入参数的例子
Jul 19 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
Django REST Framework之频率限制的使用
Sep 29 Python
python lambda函数及三个常用的高阶函数
Feb 05 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
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
php生成html文件方法总结
2014/12/01 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
学习并汇集javascript匿名函数
2010/11/25 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
Javascript中的 “&” 和 “|” 详解
2017/02/02 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
浅谈vue加载优化策略
2019/03/19 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
python中的多线程实例教程
2014/08/27 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
中专自我鉴定范文
2013/10/16 职场文书
职高毕业生自我鉴定
2013/10/21 职场文书
优秀大学生推荐信范文
2013/11/28 职场文书
班级文化标语
2014/06/23 职场文书
优秀团队申报材料
2014/12/26 职场文书
公司费用报销管理制度
2015/08/04 职场文书
python获取淘宝服务器时间的代码示例
2021/04/22 Python
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android