python读取lmdb文件_python将图片转成lmdb格式
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
再隨意按一次鍵盤鍵,退出
總結
以上是生活随笔為你收集整理的python读取lmdb文件_python将图片转成lmdb格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git 源代码自动检查_检查提交(git
- 下一篇: unet详解_UNet解释及Python