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的类变量和成员变量用法实例教程
Aug 25 Python
Python切片用法实例教程
Sep 08 Python
python计算对角线有理函数插值的方法
May 07 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
Django实现全文检索的方法(支持中文)
May 14 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
python实现飞机大战微信小游戏
Mar 21 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
python用opencv批量截取图像指定区域的方法
Jan 24 Python
详解python程序中的多任务
Sep 16 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 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下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
document.createElement()用法
2013/03/13 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
某公司部分笔试题
2013/11/05 面试题
Why do we need Unit test
2013/01/03 面试题
大学生水文观测实习自我鉴定
2013/09/29 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android