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 相关文章推荐
wxPython 入门教程
Oct 07 Python
python支持断点续传的多线程下载示例
Jan 16 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
Python打造出适合自己的定制化Eclipse IDE
Mar 02 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
Tensorflow 查看变量的值方法
Jun 14 Python
python使用zip将list转为json的方法
Dec 31 Python
python分数表示方式和写法
Jun 26 Python
如何在pycharm中安装第三方包
Oct 27 Python
Python上下文管理器Content Manager
Jun 26 Python
Python编程编写完善的命令行工具
Sep 15 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
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
PHP解析RSS的方法
2015/03/05 PHP
JS正则中的RegExp对象对象
2012/11/07 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
2015/08/07 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
原生js实现验证码功能
2017/03/16 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
Python基础知识_浅谈用户交互
2017/05/31 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
介绍一下常见的木马种类
2014/11/15 面试题
Linux如何压缩可执行文件
2014/03/27 面试题
法学专业应届生求职信
2013/10/16 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
授权委托书范本
2014/04/03 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
最美家庭活动方案
2014/08/31 职场文书
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android
DE1103使用报告
2022/04/05 无线电