时间:2021-05-22
本文实例为大家分享了python读取LMDB中的图像具体代码,供大家参考,具体内容如下
图像数据写入LMDB之后最好再按照写入的逻辑反向解析写入的图像,如果图像能够被还原则证明写入方式是没有问题的。
from PIL import Imagedef 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()以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
由于Caffe使用的存储图像的数据库是lmdb,因此有时候需要对lmdb文件进行操作,本文主要讲解如何用Python合并lmdb文件。没有lmdb支持的,需要用
在crnn训练的时候需要用到lmdb格式的数据集,下面是python生成lmdb个是数据集的代码,注意一定要在linux系统下,否则会读入图像的时候出问题,可能
python读取图像原图:importcv2#利用opencv读取图像importnumpyasnp#利用matplotlib显示图像importmatplot
PIL:使用python自带图像处理库读取出来的图片格式numpy:使用python-opencv库读取出来的图片格式tensor:pytorch中训练时所采取
python读取image在python中我们有两个库可以处理图像文件,scipy和matplotlib.安装库pipinstallmatplotlibpill