学习完基础的图像算法,开始接触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语言实现

【Python】【OpenCV】【NumPy】图像和原始字节的转换的更多相关文章

  1. python opencv3 图像与原始字节转换

    git: https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 import numpy import os &q ...

  2. 使用Python+OpenCV进行图像模板匹配(Match Template)

    2017年9月22日 BY 蓝鲸 LEAVE A COMMENT 本篇文章介绍使用Python和OpenCV对图像进行模板匹配和识别.模板匹配是在图像中寻找和识别模板的一种简单的方法.以下是具体的步骤 ...

  3. python+opencv实现图像自适应阈值的均衡化

    内容涉及:列表遍历,图像均衡化,图像通道分离与合并 import cv2 import numpy as np import os for path in open("org_junheng ...

  4. python+opencv检测图像清晰度

    直接上代码,list_jian.txt为待检测图像路径列表 import cv2 import numpy as np import os for path in open("list_ji ...

  5. python+opencv实现图像缩放

    x, y = img_.shape[0:2] img_ = cv2.resize(img_, (int(y/2), int(x/2))) 实现图像长宽缩小为原来的一半

  6. python opencv:图像的一些属性与操作

    img = cv.imread(xxx) # 常用的有以下属性 type(img) # img的数据类型 img.shape # img的结构 img.size # img的大小 img.dtype ...

  7. python中numpy对函数进行矢量化转换

    在对numpy的数组进行操作时,我们应该尽量避免循环操作,尽可能利用矢量化函数来避免循环. 但是,直接将自定义函数应用在numpy数组之上会报错,我们需要将函数进行矢量化转换. def Theta(x ...

  8. .NET + OpenCV & Python + OpenCV 配置

    最近需要做一个图像识别的GUI应用,权衡了Opencv+ 1)QT,2)Python GUI,3).NET后选择了.NET... 本文给出C#+Opencv和Python+Opencv的相应参考,节省 ...

  9. Python+opencv打开修图的正确方式get

    先逼逼两句: 图像是 Web 应用中除文字外最普遍的媒体格式. 流行的 Web 静态图片有 JPEG.PNG.ICO.BMP 等.动态图片主要是 GIF 格式.为了节省图片传输流量,大型互联网公司还会 ...

  10. Python图像处理丨OpenCV+Numpy库读取与修改像素

    摘要:本篇文章主要讲解 OpenCV+Numpy 图像处理基础知识,包括读取像素和修改像素. 本文分享自华为云社区<[Python图像处理] 二.OpenCV+Numpy库读取与修改像素> ...

随机推荐

  1. PHP对关联数组(键值对数组)遍历循环

    PHP对关联数组循环遍历 $arr=array('yxb'=>20,'ylg'=>21,'lgj'=18); foreach($arr as $name=>$value) { ech ...

  2. Spring中事务的传播行为有哪些?

    Spring中事务的传播行为有哪些? 现在我们来谈一个场景,再来引出事务传播行为这个概念.现在有methodA( ) 和 methodB( ),而且两个方法都显示的开启了事务,那么methodB( ) ...

  3. 通过snmp获取设备每个接口的配置IP地址,网段信息和VLAN接口号

    第一部分,观察通过snmp OID能获取的信息,对信息进行关联. 1.通过 snmp获取到接口IP地址和掩码信息,发现IP地址作为索引值: 2.每个IP地址的索引,都可以关联到接口的索引 3.每个接口 ...

  4. 电气工程师必学------CODESYS v3.5 入门学习笔记(一)

    一.新建工程 打开软件新建工程,如图 此教程只是入门练习,所以这里一般情况下都是创建的Standard project,也就是标准工程.窗口下方可以设置工程名称与存放位置. 紧接着是选择设备与编译语言 ...

  5. Teamcenter RAC 开发之《新建Item》

    private TCComponentItem createOperation(String itemName,String itemType) { //obejct_name itemType tr ...

  6. 【知识杂谈#2】如何查看Linux的(本地与公网)IP地址与SSH服务的端口号

    1. 本地Ip地址查看 使用查看linux主机是否有net-tools dpkg -l net-tools 显示以下代码就说明已安装成功 ||/ Name Version Architecture D ...

  7. 从原理到实战,详解XXE攻击

    本文分享自华为云社区<[安全攻防]深入浅出实战系列专题-XXE攻击>,作者: MDKing. 1 基本概念 XML基础:XML 指可扩展标记语言(Extensible Markup Lan ...

  8. PKUSC & GDCPC 2023 游记

    离得太近,游记打算扔一起. 有没有神仙面基啊 /kel. PKUSC 2023 Day -? 突然听说不给 NOI Linux,震惊. 前情提要:在从 CSP 开始就全员强制 linux 的 LN 为 ...

  9. Python 利用pandas和matplotlib绘制饼图

    这段代码使用了Pandas和Matplotlib库来绘制店铺销售数量占比的饼图.通过读取Excel文件中的数据,对店铺名称进行聚合并按销售数量降序排列,然后使用Matplotlib绘制饼图展示销售数量 ...

  10. Visual Studio vs2010到2022各个版本的的永久激活密钥

    前言 以下密钥均收集于网络,但均可以正常激活 VS2022专业版和企业版的密钥 Visual Studio 2022 Pro(专业版) TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Vi ...