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实现给字典添加条目的方法
Sep 25 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
答题辅助python代码实现
Jan 16 Python
python socket网络编程之粘包问题详解
Apr 28 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
Django框架获取form表单数据方式总结
Apr 22 Python
如何对python的字典进行排序
Jun 19 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 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 Smarty模板生成html文档的方法
2010/04/12 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP中error_reporting函数用法详细介绍
2017/06/11 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
string = null 和string = ''的区别
2013/04/28 面试题
《放飞蜻蜓》教学反思
2014/04/27 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
宣传稿格式范文
2015/07/23 职场文书