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的Django框架部署的一些建议
Apr 09 Python
举例详解Python中yield生成器的用法
Aug 05 Python
Python打造出适合自己的定制化Eclipse IDE
Mar 02 Python
numpy自动生成数组详解
Dec 15 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
PyQt 如何创建自定义QWidget
Mar 24 Python
python实现图片九宫格分割的示例
Apr 25 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
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
JS封装通过className获取元素的函数示例
2016/12/20 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python字典遍历操作实例小结
2019/03/05 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
django中forms组件的使用与注意
2019/07/08 Python
python dataframe NaN处理方式
2019/12/26 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
Java模拟试题
2014/11/10 面试题
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
财务会计专业求职信范文
2013/12/31 职场文书
《荷花》教学反思
2014/04/16 职场文书
建设投标担保书
2014/05/13 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
党员证明模板
2015/06/19 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang