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通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python中的with语句与上下文管理器学习总结
Jun 28 Python
Python计算斗牛游戏概率算法实例分析
Sep 26 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
python 日期排序的实例代码
Jul 11 Python
Python Pandas 箱线图的实现
Jul 23 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
构建高效的python requests长连接池详解
May 02 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
Python变量格式化输出实现原理解析
Aug 06 Python
Python matplotlib模块及柱状图用法解析
Aug 10 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
php.ini中的request_order推荐设置
2015/05/10 PHP
PHP获取文件行数的方法
2015/06/10 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
Firefox div高度自适应
2009/04/28 Javascript
Ruffy javascript 学习笔记
2009/11/30 Javascript
有趣的javascript数组定义方法
2010/09/10 Javascript
node.js中watch机制详解
2014/11/17 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
使用javascript做在线算法编程
2018/05/25 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
秋季红领巾广播稿
2014/01/27 职场文书
大学毕业自我评价
2014/02/02 职场文书
市场营销方案范文
2014/03/11 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL
Python 匹配文本并在其上一行追加文本
2022/05/11 Python