本文实例为大家分享了python读取LMDB中的图像具体代码,供大家参考,具体内容如下
图像数据写入LMDB之后最好再按照写入的逻辑反向解析写入的图像,如果图像能够被还原则证明写入方式是没有问题的。
从公益诉讼导入图像 def read_from_lmdb (lmdb_path img_save_to): 试一试: lmdb_env=lmdb。打开(lmdb_path map_size=3221225472) lmdb_txn=lmdb_env.begin () lmdb_cursor=lmdb_txn.cursor () 基准=caffe.Datum () datum_index=0 在lmdb_cursor键值: datum.ParseFromString(值) 标签=datum.label data=https://www.yisu.com/zixun/datum.data 频道=datum.channels 打印('基准渠道:% d ' % datum.channels) 打印(“基准宽度:% d ' % datum.width) 打印(“基准高度:% d ' % datum.height) 打印(“基准数据长度:% d % len (datum.data)) 打印('基准标签:% d ' % datum.label)=datum.width * datum.height大小 pixles1=datum.data[0大小): pixles2=datum.data(大小:2 *大小) pixles3=datum.data(2 *尺寸:3 *大小) #提取图像不同的频道 image1=Image.frombytes (“L”(基准面。宽度,datum.height)、pixles1) image2=Image.frombytes (“L”(基准面。宽度,datum.height)、pixles2) image3=Image.frombytes (“L”(基准面。宽度,datum.height)、pixles3) #注意三通道的顺序,如果LMDB中图像是按照BGR存储的则需要按照:image3, image2, image1的顺序合并为RGB图像.PIL中图像是按照RGB的顺序存储的 image4=Image.merge (“RGB (image3, image2 image1)) image4.save (img_save_to + str(键)+ " . jpg ") datum_index +=1 打印“提取” 最后: lmdb_env.close ()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。