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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
Python中获取网页状态码的两个方法
Nov 03 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
Pandas 同元素多列去重的实例
Jul 03 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
python 制作磁力搜索工具
Mar 04 Python
python 如何用map()函数创建多线程任务
Apr 07 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
德生9700DX电路分析
2021/03/02 无线电
第七节 类的静态成员 [7]
2006/10/09 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
python实现class对象转换成json/字典的方法
2016/03/11 Python
Python探索之ModelForm代码详解
2017/10/26 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
django中静态文件配置static的方法
2018/05/20 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
python实现kmp算法的实例代码
2019/04/03 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
C/C++程序员常见面试题一
2012/12/08 面试题
大学生素质拓展活动方案
2014/02/11 职场文书
产品开发计划书
2014/04/27 职场文书
委托书怎样写
2014/08/30 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
Django cookie和session的应用场景及如何使用
2021/04/29 Python