logo

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


风晓
风晓 2023-12-29 10:50:13 18638 赞同 0 反对 0
分类: 资源 标签: AI大模型
学习完基础的图像算法,开始接触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数组 也可以直接使用numpy.random.randint(0, 256, 12)获取一个字节数组
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)
复制代码

 

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

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓
粉丝 1 资源 2038 + 关注 私信
最近热门资源
当“ventoy启动盘”遇到“主板安全启动”  404
最近下载排行榜
当“ventoy启动盘”遇到“主板安全启动” 0
作者收入月榜
1

prtyaa 收益354.19元

2

风晓 收益207.84元

3

IT-feng 收益197.65元

4

zlj141319 收益173.23元

5

777 收益169.89元

6

1843880570 收益160.33元

7

信创来了 收益103.8元

8

Fhawking 收益99.6元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79元

请使用微信扫码