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 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
python使用rabbitmq实现网络爬虫示例
Feb 20 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
对python中的pop函数和append函数详解
May 04 Python
对python模块中多个类的用法详解
Jan 10 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python循环结构的应用场景详解
Jul 11 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Django框架中模型的用法
Jun 10 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管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
2018/02/23 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
深入理解Django-Signals信号量
2019/02/19 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
玲玲的画教学反思
2014/02/04 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
门面房租房协议书
2014/12/01 职场文书
医院志愿者活动总结
2015/05/06 职场文书
期中考试后的感想
2015/08/07 职场文书