【caffe】读取lmdb文件中的内容

2024-03-26 16:38
文章标签 读取 内容 caffe lmdb

本文主要是介绍【caffe】读取lmdb文件中的内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考: https://www.jb51.net/article/142988.htm
https://blog.csdn.net/jyl1999xxxx/article/details/53942824

# read.py
from PIL import Image
from caffe.proto import caffe_pb2
import lmdb
import numpy as nppath='/home/...../caffe/examples/cifar10/cifar10_test_lmdb'
def read_from_lmdb(lmdb_path, img_save_to):lmdb_env=lmdb.open(lmdb_path)lmdb_txn=lmdb_env.begin()lmdb_cursor=lmdb_txn.cursor()datum=caffe_pb2.Datum()datum_index=0for key,value in lmdb_cursor:datum.ParseFromString(value)label=datum.labeldata=datum.datachannel=datum.channelsprint ('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.heightpixles1=datum.data[0:size]pixles2=datum.data[size:2*size]pixles3=datum.data[2*size:3*size]#Extract images of different channelimage1=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)image4=Image.merge("RGB",(image3,image2,image1))image4.save(img_save_to+str(key)+".jpg")datum_index+=1print "extracted"lmdb_env.close()read_from_lmdb(path, 'pic')

执行文件

python read.py

则能看到打印输出和获得的图片文件

.......
09998,1
(3, 32, 32)
09999,7
(3, 32, 32)
Datum channels: 3
Datum width: 32
Datum height: 32
Datum data length: 3072
Datum label: 3
extracted
......

这篇关于【caffe】读取lmdb文件中的内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849140

相关文章

在C#中读取文件的六种主流方法详解

《在C#中读取文件的六种主流方法详解》在C#中读取文件有多种方法,不同方式适用于不同场景(小型文件、大型文件、文本文件或二进制文件),本文给大家介绍了6种主流方法以及其适用场景,需要的朋友可以参考下... 目录方法1:File.ReadAllText(读取整个文本文件)方法2:File.ReadAllLin

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据