学习完基础的图像算法,开始接触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. 完全卸载MySQL服务的方法

    1. 重新运行安装文件,单击remove移除mysql.此时安装目录中的文件没有完全移除,需要手动删除安装目录的Mysql文件夹. 2. 如果MySQL服务没有移除的话,以管理员方式运行cmd命令:s ...

  2. 一个颜值功能双在线的Zookeeper可视化工具

    大家好,我是 Java陈序员,今天给大家介绍一个颜值功能双在线的 Zookeeper 可视化工具. 项目介绍 PrettyZoo 是一个基于 Apache Curator 和 JavaFX 实现的 Z ...

  3. 关于Async、Await的一些知识点

    在ASP.NET Core中,当一个HTTP请求到达服务器时,它会被分配给线程池中的一个线程来处理.该线程会执行相应的Controller方法. 如果这个方法是一个异步方法并且使用了await关键字, ...

  4. c语言代码练习2(2)改进

    //利用for循环计算1-10阶乘的和#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main( ) { int num ...

  5. 要知其然还要知其所以然printChar

    虽然过渡与的追求细节不是好事, 但是现实社会逼迫我们不得不兼顾周全. 所以什么都是最好不仅要知其然还要知其所以然! public class printChar { public static voi ...

  6. 校招零Offer要不要先找实习?

    国庆前后被问到最多的问题是:"磊哥,我现在还是 0 Offer,要不要先去找个实习?",给大家看看部分截图. 同学 A: 同学 B: 同学 C: 其他还有一些截图,我这里就不一一贴 ...

  7. 2020/4/29 一场令人头疼的cf。。。

    今天是被安排的cf...我真的是太菜了啊...又双叒叕被机房的一群dalao吊打了... 这就是我与6年级的dalao的区别吗...我裂开了 T1:A - Exercising Walk 简单题. 就 ...

  8. 【matplotlib 实战】--饼图

    饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表.在饼图中,每个扇形的弧长(以及圆心角和面积)大小,表示该种类占总体的比例,且这些扇形合在一起刚好是一个完全的圆形. 饼图最显著的功能在于表现&qu ...

  9. umich cv-3-2

    UMICH CV Neural Network 既然谈到神经网络,我们肯定要讨论在神经网络中是如何进行梯度的计算以及参数的优化的 传统的方法就是我们手动计算梯度,但是随着神经网络层数的增加,这种方法显 ...

  10. Avalonia 实现视频聊天、远程桌面(源码,支持Windows、Linux、国产OS)

    现在最火的.NET跨平台UI框架莫过于Avalonia了.Avalonia 基于.NET Core,因此它可以运行在任何支持.NET Core的平台上.之前基于CPF跨平台UI框架写过一个视频聊天的d ...