首页 > 编程语言 >【Python】【OpenCV】【NumPy】图像和原始字节的转换

【Python】【OpenCV】【NumPy】图像和原始字节的转换

时间:2023-11-19 22:58:08浏览次数:30  
标签:字节 Python bi OpenCV yz 灰度 数组 print NumPy

学习完基础的图像算法,开始接触OpenCV学习:

灰度图中,一个像素点上的灰度级需要一个字节(byte,2^8,8 bit)进行存储,此时的灰度图是二维的。
而当我们需要转换为彩色图时,即三维,便会产生颜色通道(Channel),这个时候,一个像素点上的灰度级便会需要三个字节来进行存储。

可以借助笛卡尔坐标系来帮助理解:

 

我们开始实操:

1、生成一个随机的原始字节;

2、将随机字节转换为一维数组;

3、转换为灰度图(即二维数组)然后保存;

4、转换为彩色图(即三维数组)然后保存;

 Code:

 1 import cv2
 2 import numpy
 3 import os
 4 
 5 # 生成随机字符,然后转换成字节数组
 6 rb = bytearray(os.urandom(12))
 7 print(rb)
 8 
 9 # 将字节数组转换成numpy数组
10 fn = numpy.array(rb)
11 print(fn)
12 
13 # 转换成灰度图,即二维数组
14 gi = fn.reshape(3, 4)
15 print(gi)
16 # cv2.imwrite('2D.png', gi)
17 
18 # 转换成彩色图,即三维数组,此时的展示的面是 xy 构成的
19 bi = fn.reshape(1, 4, 3)
20 print(bi)
21 # cv2.imwrite('3D_xy.png', bi)
22 
23 # 此时的展示的面是 yz 构成的
24 yz = numpy.uint8(bi[0, :, :])
25 # cv2.imwrite('3D_yz.png', yz)
26 print(yz)

 

 至此就完成了原始字节转换成图像的步骤。

 

参考书籍:OpenCV 4计算机视觉:Python语言实现

标签:字节,Python,bi,OpenCV,yz,灰度,数组,print,NumPy
From: https://www.cnblogs.com/vangoghpeng/p/17842165.html

相关文章

  • Python装饰器-计算运行时间小例子
    importtimedefrun_time(func):"计算运行时长装饰器"defwrapper(*args,**kwargs):#包装函数start=time.time()#在调用装饰函数前干点事情res=func(*args,**kwargs)end=time.time()#在调用装饰函数后干点事情t=e......
  • 掌握迭代器:Python中的强大工具,让你轻松驾驭数据处理的巨轮
    今天,我们将深入探讨Python中的迭代器。迭代器是一种强大的工具,它使我们能够在不需要知道数据集的全部信息的情况下,逐个访问数据集中的每个元素。通过使用迭代器,我们可以逐个处理数据集中的每个元素,而不需要一次性加载整个数据集到内存中。这使得迭代器在处理大型数据集时特别有用。......
  • python代码压缩
    python代码压缩使用python-minifier库压缩python文件大小,同时混淆代码。安装库:pipinstallpython-minifier,对于单个文件或整个项目都可以直接使用命令压缩。使用python-minifier压缩pydantic的模型时会有问题,暂时过滤掉对应文件,因此写了一个脚本来压缩整个项目到另一个......
  • Windows部署Python环境
    下载Python解释器进入Python官网。在Downloads下,选择Windows。找到自己需要的Python版本,点击进行下载。双击运行Python解释器安装包。选中Addpython.exetoPATH,然后单击Customizeinstallation进行自定义安装。注意,一定要选择Addpython.exetoPATH将python命令加......
  • 【3.0】Python中级之深浅拷贝
    【一】深浅拷贝问题引入无论深拷贝还是浅拷贝都是用来复制对象的如果是浅copy,只会复制一层,如果copy的对象中有可变数据类型,修改可变数据类型还会影响拷贝的对象如果是深copy,完整复制,无论可变或不可变,都是创建出新的来,以后再改原对象,都不会对copy出的对象造成影响在Py......
  • Linux部署Python环境
    本文使用的Linux发行版本为AlmaLinux9.264位(CentOS停止更新后的完美替代发行版本)。本文安装的Python版本为3.12.0,其他版本方法类似。准备工作更新系统。dnf-yupdate安装Python前,需确认当前系统是否已安装Python以及对应版本。不建议卸载原有Python版本,可能被应用......
  • 【5.0】Python中级之文件操作
    【一】文本处理引入应用程序运行过程中产生的数据最先都是存放于内存中的若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统......
  • 【4.0】Python中级之字符编码
    【一】文本编辑器与Python解释器原理字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。【1】数据存放位置所有软件都是运行硬件之上的与运行软件相关的三大核心硬件为cpu、内存、硬盘软件运行前,软件的代码及其相关数据都......
  • 【6.0】Python中级之异常处理
    【一】什么是异常异常是程序运行时可能发生的错误或意外情况。在Python中,异常是一种对象,表示程序执行期间发生的错误。当出现异常时,程序的正常流程会被中断,而是跳转到异常处理流程。【二】异常分类在Python中,异常分为两类:内建异常(Built-inExceptions):由Python内部定义......
  • 大白话说Python+Flask入门(三)
    写在前面今天状态很不好,我发现学这部分知识的时候,会出现溜号或者注意力无法集中的情况。我能想到的是,大概率是这部分知识,应该是超出了我现在的水平了,也就是说我存在知识断层了,整体感觉真的是一知半解。那有同学会问了,那你能说明白吗?我理解的肯定能呀,来往下看!Flask的使用1、......