欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > python >内容正文

python

python读取lmdb文件-凯发k8官方网

发布时间:2024/10/14 python 22 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 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

再随意按一次键盘键,退出

总结

以上是凯发k8官方网为你收集整理的python读取lmdb文件_python将图片转成lmdb格式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图