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分割TXT文件成4K的TXT文件
May 23 Python
Python实现从URL地址提取文件名的方法
May 15 Python
Python遍历文件夹 处理json文件的方法
Jan 22 Python
python安装pil库方法及代码
Jun 25 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
Aug 05 Python
如何爬取通过ajax加载数据的网站
Aug 15 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
Django密码存储策略分析
Jan 09 Python
Matplotlib.pyplot 三维绘图的实现示例
Jul 28 Python
python编写实现抽奖器
Sep 10 Python
python如何实现DES加密
Sep 21 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实现多张图片上传加水印技巧
2013/04/18 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
Javascript中call的两种用法实例
2013/12/13 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
毕业实习个人鉴定范文
2013/12/10 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
运动员加油词
2015/07/18 职场文书
小学毕业感言100字
2015/07/30 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Python实现排序方法常见的四种
2021/07/15 Python
Python中的程序流程控制语句
2022/02/24 Python