OpenCV-Python中的函数cv.imread()读取到的图像的数据存储结构是怎样的?
2023-09-11 14:15:39 时间
OpenCV-Python中的函数cv.imread()读取到的图像的数据存储结构是怎样的?
用一个例子实测一下就知道了。
测试代码如下:
import numpy as np
import cv2 as cv
src = cv.imread("F:/material/images/P0037-pure_red-02.bmp")
代码中用的图像下载链接:
链接:https://pan.baidu.com/s/1ldfJmdUnq_Os7QPGS8njyA 提取码:pltg
该图像是一张纯红色的图像,其属性如下图所示:
上面的代码运行后src的属性如下:
上图代表第0行第0列的像素点的BGR分量分别为(0,0,254)
可见,其数据结构为:
最高维度代表图像有多少行,是图像的行维度。
第2维度代表图像有多少列,是图像的列维度。
第3维度代表图像有几个通道,是图像的通道维度。
这与我们通常想象的顺序不一样,我们看下面这个例子:
import numpy as np
B = np.array([[[11, 12, 13, 14],
[15, 16, 17, 18]],
[[19, 20, 21, 22],
[23, 24, 25, 26]],
[[27, 28, 29, 30],
[31, 32, 33, 34]]])
上面的代码中,B矩阵为三通道、两行、四列,运行代码后,B中的数据结构如下:
可见在这里:
最高维度是通道维度(代表有几个通道),其次是行维度(代表多少行),最后是列维度(代表多少列)。
而上面用函数cv.imread()读取到的图像的数据存储结构如下图所示:
从图中可以看出:
用函数cv.imread()读取到的图像的数据存储结构“最高维度是行维度(代表多少行),其次是列维度(代表多少列),最后是通道维度(代表有几个通道)”。
这一点,我们必须清楚,如果连这一点都不清楚,我们在进行图像处理时就是处于迷糊状态。
相关文章
- python魔法方法之-Python __repr__()方法:显示属性
- 零基础教你快速入门Python怎么学python入门?python新手学习路线
- Python被严重高估了?
- MATLAB、C++、OpenCV、Python、Python-Numpy近似值(取整)求取函数总结【round()、ceil()、floor()、fix()】
- 【Python】AttributeError: module 'enum' has no attribute 'Enum'
- 【Python】【PyPI】twine模块打包python项目上传pypi
- 合并两个有序链表 python
- python导出zabbix数据并发邮件脚本
- Python OpenCV实现鼠标绘制矩形框和多边形
- python学习之安装python-opencv库(测试有效)
- Python处理JSON数据
- 编写一个 Python 代码以按第 n 列对 NumPy 中的数组进行排序?
- 如何在OpenCV Python中规范化图像?
- 安装python库roboschool运行报错:ImportError: libpcre16.so.3: cannot open shared object file——解决方法
- Python Pillow(PIL 第三方模块)和 cv2 (opencv第三方模块)对图片的 resize 操作 (缩放图片大小)
- 第一章 opencv与python介绍及环境搭建
- 数据恢复专业基础之python解释NTFS runlist的代码
- 65、【链表】leetcode——707. 设计链表(C++、Python版本)
- 华为OD机试 -最大子矩阵和(Python) | 机试题+算法思路+考点+代码解析 【2023】
- 【Python基础】我的第一个 python 程序
- [Python]python+yaml三行代码完成配置文件灵活读取与warning:YAMLLoadWarning处理
- Python实现APP UI自动化以及OpenCV图像识别元素
- python中的print()
- Python数据类型