学习完基础的图像算法,开始接触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. .Net8 AOT+VMP简单的逆向分析

    1.前言 测试下VMP加密.NET的强度,选了最新的.Net8+AOT编译,用VMP给它加壳.最后逆向下,简单的分析,本篇看下. 2.概述 一.前奏 首先一段简单的C#代码: namespace Te ...

  2. python一键过杀软

    python过杀软新 利用python加载shellcode过360.火绒等杀软 先上代码 将以下代码保存到 mt.py import base64 import os import shutil b ...

  3. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(6) -- 窗口控件脏数据状态IsDirty的跟踪处理

    在我们窗口新增.编辑状态下的时候,我们往往会根据是否修改过的痕迹-也就是脏数据状态进行跟踪,如果用户发生了数据修改,我们在用户退出窗口的时候,提供用户是否丢弃修改还是继续编辑,这样在一些重要录入时的时 ...

  4. Cplex混合整数规划求解(Python API)

    绝对的原创!罕见的Cplex-Python API混合整数规划求解教程!这是我盯了一天的程序一条条写注释一条条悟出来的•́‸ก 一.问题描述 求解有容量限制的的设施位置问题,使用Benders分解.模 ...

  5. C#学习笔记---异常捕获和变量

    异常捕获 使用异常捕获可以捕获出现异常的代码块,防止因为异常抛出造成的程序卡死的情况发生. try{}catch{}finally{}结构 //异常捕获 try { string str=Consol ...

  6. 【译】为什么命名“它”为依赖属性(DependencyProperty)

    当我们创建新的类和成员时,我们花费了大量的时间和精力是它们尽可能的好用,好理解,好发现.通常我们会遵循.Net框架设计指南,尤其是会不断地研究这个新类与其他类,未来计划等内容之间的关系. 当命名依赖属 ...

  7. 如何将Python程序打包并保护源代码

    导言: 在某些情况下,我们可能希望将Python程序打包成可执行文件,以便用户无法查看程序的源代码.这种需求通常出现在商业软件.数据分析工具或其他需要保护知识产权的场景中.本文将介绍如何使用PyIns ...

  8. Intellij13 IDEA常用快捷键 (mac 10.5 +),优化,使用出现的问题汇总

    http://blog.csdn.net/xiaohulunb/article/details/20729261

  9. 如何使用Python将PDF转为Excel

    PDF文件是一种静态文档格式,通常难以编辑,而Excel则是一个灵活的表格工具.如果你需要处理PDF表格中的数据,那么将其导出为Excel文件可以大大节省工作时间和精力.Excel提供的强大数据编辑和 ...

  10. 聊聊分布式 SQL 数据库Doris(六)

    负载均衡 此处的负载均衡指的是FE层的负载均衡. 当部署多个 FE 节点时,用户可以在多个 FE 之上部署负载均衡层来实现 Doris 的高可用.官方文档描述: 负载均衡 . 实现方式 实现方式有多种 ...