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利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
分析python切片原理和方法
Dec 19 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
python 8种必备的gui库
Aug 27 Python
Windows下pycharm安装第三方库失败(通用解决方案)
Sep 17 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 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
实用函数2
2007/11/08 PHP
PHP数据类型的总结分析
2013/06/13 PHP
迅速确定php多维数组的深度的方法
2014/01/07 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
js常见表单应用技巧
2008/01/09 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
JS闭包的几种常见形式实例详解
2017/09/16 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
Python 3中print函数的使用方法总结
2017/08/08 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
表达自我的市场:Society6
2018/08/01 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
Smilodox官方运动服装店:从运动服到健身配件
2020/08/27 全球购物
工程师岗位职责规定
2014/02/26 职场文书
2014年高考决心书
2014/03/11 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL