Python+OpenCV实现将图像转换为二进制格式


Posted in Python onJanuary 09, 2020

在学习tensorflow的过程中,有一个问题,tensorflow在训练的过程中读取的是二进制图像数据库文件,而不是图像文件,因此

在进行训练、测试之前需要将图像文件转换为二进制格式。

下面是我在ubuntu中使用python+OpenCV读取图像并转换为二进制格式文件的代码。

#coding=utf-8
'''
Created on 2016年3月24日
使用Opencv读取图像将其保存为二进制格式文件,再读取该二进制文件,转换为图像进行显示
@author: hanchao
'''
import cv2
import numpy as np
import struct

image = cv2.imread("test.jpg")
#imageClone = np.zeros((image.shape[0],image.shape[1],1),np.uint8)

#image.shape[0]为rows
#image.shape[1]为cols
#image.shape[2]为channels
#image.shape = (480,640,3)
rows = image.shape[0]
cols = image.shape[1]
channels = image.shape[2]
#把图像转换为二进制文件
#python写二进制文件,f = open('name','wb')
#只有wb才是写二进制文件
fileSave = open('patch.bin','wb')
for step in range(0,rows):
  for step2 in range(0,cols):
    fileSave.write(image[step,step2,2])
for step in range(0,rows):
  for step2 in range(0,cols):
    fileSave.write(image[step,step2,1])
for step in range(0,rows):
  for step2 in range(0,cols):
    fileSave.write(image[step,step2,0])
fileSave.close()
    
#把二进制转换为图像并显示
#python读取二进制文件,用rb
#f.read(n)中n是需要读取的字节数,读取后需要进行解码,使用struct.unpack("B",fileReader.read(1))函数
#其中“B”为无符号整数,占一个字节,“b”为有符号整数,占1个字节
#“c”为char类型,占一个字节
#“i”为int类型,占四个字节,I为有符号整形,占4个字节
#“h”、“H”为short类型,占四个字节,分别对应有符号、无符号
#“l”、“L”为long类型,占四个字节,分别对应有符号、无符号
fileReader = open('patch.bin','rb')
imageRead = np.zeros(image.shape,np.uint8)
for step in range(0,rows):
  for step2 in range(0,cols):
    a = struct.unpack("B",fileReader.read(1))
    imageRead[step,step2,2] = a[0]
for step in range(0,rows):
  for step2 in range(0,cols):
    a = struct.unpack("b",fileReader.read(1))
    imageRead[step,step2,1] = a[0]
for step in range(0,rows):
  for step2 in range(0,cols):
    a = struct.unpack("b",fileReader.read(1))
    imageRead[step,step2,0] = a[0]
    
fileReader.close()
cv2.imshow("source",image)
cv2.imshow("read",imageRead)
cv2.waitKey(0)

以上这篇Python+OpenCV实现将图像转换为二进制格式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读取csv文件示例(python操作csv)
Mar 11 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
Python中一些不为人知的基础技巧总结
May 19 Python
numpy基础教程之np.linalg
Feb 12 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
python实现两个字典合并,两个list合并
Dec 02 Python
在notepad++中实现直接运行python代码
Dec 18 Python
python利用faker库批量生成测试数据
Oct 15 Python
python 解决函数返回return的问题
Dec 05 Python
python 实现图片裁剪小工具
Feb 02 Python
python中os.path.join()函数实例用法
May 26 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 #Python
python读取raw binary图片并提取统计信息的实例
Jan 09 #Python
Flask 上传自定义头像的实例详解
Jan 09 #Python
flask 实现上传图片并缩放作为头像的例子
Jan 09 #Python
python中如何使用insert函数
Jan 09 #Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 #Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 #Python
You might like
php上的memcache和memcached两个pecl库
2010/03/29 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
初识php MVC
2014/09/10 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
如何判断php mysqli扩展类是否开启
2016/12/24 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
javascript 面向对象封装与继承
2014/11/27 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
JavaScript中this详解
2015/09/01 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
python实现百度语音识别api
2018/04/10 Python
Python实现的knn算法示例
2018/06/14 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python实现在线翻译
2020/06/18 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
简历的个人自我评价范文
2014/01/03 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
单位实习介绍信
2015/05/05 职场文书