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 相关文章推荐
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
python图书管理系统
Apr 05 Python
python调用OpenCV实现人脸识别功能
May 25 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
python ---lambda匿名函数介绍
Mar 13 Python
Python 模拟生成动态产生验证码图片的方法
Feb 01 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
django创建css文件夹的具体方法
Jul 31 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 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
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
js实现日期级联效果
2014/01/23 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python多层装饰器用法实例分析
2018/02/09 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
Python实现SMTP邮件发送
2020/06/16 Python
网络编辑岗位职责
2014/03/18 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
邓小平理论心得体会
2014/09/09 职场文书
业务员岗位职责
2015/02/03 职场文书
北京天坛导游词
2015/02/12 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
Java设计模式之代理模式
2022/04/22 Java/Android
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL