python读取lmdb文件-ag凯发k8国际
about
本文参考了
在开始前...
先说说几处坑:
虽然安装了caffe,但是
import lmdb
出现error。stackoverflow上的同学们讨论说,要装一个lmdb
2 于是开始装lmdb
sudo pip install lmdb
但是,在python2中直接导入,还是出错。原来上面的lmdb被装在了python3的库里了。知乎上的同学讨论说:
如果是装python3的库就用
pip3 install ...
如果是python2的,就用
pip2 install ...
3 终于,成功安装lmdb
sudo pip2 install lmdb
开始转换
将图片转换成lmdb
代码实现(仅转换一张lena.jpg)
import lmdb
import numpy as np
import cv2
import caffe
from caffe.proto import caffe_pb2
def gen_lmdb(lmdb_file, image_size, image_name, image_label):
lmdb_env = lmdb.open(lmdb_file, map_size=int(image_size*10))
lmdb_txn = lmdb_env.begin(write=true)
datum = caffe_pb2.datum()
data = cv2.imread(image_name)
label = image_label
datum = caffe.io.array_to_datum(data, label)
keystr = '{:0>8d}'.format(label)
lmdb_txn.put(keystr, datum.serializetostring())
lmdb_txn.commit()
def main():
lmdb_file = 'lena_lmdb'
image_size = 256*256*3
image_name = 'lena.jpg'
image_label = 1
gen_lmdb(lmdb_file, image_size, image_name, image_label)
print "i'm down!"
if __name__ == '__main__':
main()
运行结果
lmdb_lena文件下:
lm.png
题外话,将lmdb格式的转成图片
为了验证是否转换成功了,可以试试翻转
代码实现
import caffe
import lmdb
import numpy as np
import cv2
from caffe.proto import caffe_pb2
def read_lmdb(lmdb_file):
lmdb_env = lmdb.open(lmdb_file)
lmdb_txn = lmdb_env.begin()
lmdb_cursor = lmdb_txn.cursor()
datum = caffe_pb2.datum()
for key, value in lmdb_cursor:
datum.parsefromstring(value)
label = datum.label
data = caffe.io.datum_to_array(datum)
cv2.imshow('cv2', data)
cv2.waitkey(0)
print('{},{}'.format(key, label))
def main():
lmdb_file = 'lena_lmdb'
read_lmdb(lmdb_file)
if __name__ == '__main__':
main()
结果显示
lena.jpg
终端有:
00000001,1
再随意按一次键盘键,退出
总结
以上是ag凯发k8国际为你收集整理的python读取lmdb文件_python将图片转成lmdb格式的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: unet详解_unet解释及python