【Python】【OpenCV】【NumPy】图像和原始字节的转换
1.【Python】【ChatGPT】本地部署ChatGPT学习记录
2.【Python】【OpenCV】【NumPy】图像和原始字节的转换
3.【Python】【OpenCV】【NumPy】图像数据的访问4.【Python】【OpenCV】视频帧和摄像头帧操作 and 窗口显示5.【Python】【OpenCV】Cameo项目(一)实时显示摄像头帧6.【Python】【OpenCV】边缘检测和创建自定义核7.【Python】【OpenCV】轮廓检测8.【Python】【OpenCV】绘制外接矩形、外接圆9.【Python】【OpenCV】凸轮廓和Douglas-Peucker算法10.【Python】【OpenCV】检测直线和圆11.【Python】【OpenCV】定位条形码(一)12.【Python】【OpenCV】定位条形码(二)moments和HuMoments13.【Python】【OpenCV】关于cv2.findContours()轮廓索引(编号)解析(RETR_TREE)14.【Python】【OpenCV】定位二维码15.【Python】【OpenCV】OCR识别(一)——目标区域定位16.【Python】【OpenCV】OCR识别(二)——透视变换17.【Python】【OpenCV】OCR识别(三)——字符识别学习完基础的图像算法,开始接触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)
至此就完成了原始字节转换成图像的步骤。
参考书籍:OpenCV 4计算机视觉:Python语言实现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)