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的randrange()方法使用教程
May 15 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
Python read函数按字节(字符)读取文件的实现
Jul 03 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
python实现图片横向和纵向拼接
Mar 05 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
pytest实现多进程与多线程运行超好用的插件
Jul 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
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
python基础教程之序列详解
2014/08/29 Python
python实现狄克斯特拉算法
2019/01/17 Python
python把1变成01的步骤总结
2019/02/27 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
python-numpy-指数分布实例详解
2019/12/07 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
使用Pytorch搭建模型的步骤
2020/11/16 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
远东集团网络工程师面试题
2014/10/20 面试题
初三物理教学反思
2014/01/21 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
语文教师个人工作总结
2015/02/06 职场文书
会议主持词通用版
2019/04/02 职场文书
关于感恩的作文
2019/08/26 职场文书
使用pytorch实现线性回归
2021/04/11 Python
使用Python拟合函数曲线
2022/04/14 Python
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers