在Python中使用Open CV读取一张图片后,会保存为“numpy.ndarray”格式,具体的ndarray数据结构特点可以参考以下文章:NumPy Ndarray 对象丨菜鸟教程
很多人都知道一张正常的彩色图片基本都是RGB颜色模型,但是在Open CV中图像是以BGR颜色模型来存放的。
首先我们读取一张图片(为了容易说明,图像的尺寸大小仅仅为2×3,即高度为2,宽度为3的小图片),把它输出。

>>> import cv2
>>> import numpy as np
>>> img = cv2.imread("test.jpg")
>>> type(img)
class 'numpy.ndarray'>>>> img.shape
(2, 3, 3)>>> print(img)
[[[144 141 110][144 141 110][129 108  80]][[125 122  91][128 125  94][109  88  60]]]

可以看出,img这个图片被Open CV读取后变成了“numpy.ndarray”格式,图片维度为2,3,3,第一个数字“2”代表高度为2,第二个数字“3”代表宽度,第三个数字“3”代表图片的“层数”,也就是BGR这3种颜色。

img的格式我们可以用以下结构表示:

比如输出img的结果
[[[144 141 110]
[144 141 110]
[129 108 80]]
[[125 122 91]
[128 125 94]
[109 88 60]]]

对应RGB格式:
图像第一行:
第1个像素点:110, 141, 144
第2个像素点:110, 141, 144
第3个像素点:80, 141, 129

图像第二行:
第1个像素点:91, 122, 125
第2个像素点:94, 125, 128
第3个像素点:60, 88, 109

如果我们想获取图像img第一行所有的像素点,可以使用:

>>> img[0]
array([[144, 141, 110],[144, 141, 110],[129, 108,  80]], dtype=uint8)

同理,第二行所有像素点:

>>> img[1]
array([[125, 122,  91],[128, 125,  94],[109,  88,  60]], dtype=uint8)

获取第1个像素点:

>>> img[0][0]
array([144, 141, 110], dtype=uint8)>>> img[0, 0]
array([144, 141, 110], dtype=uint8)

获取第4个(第2行第1个)像素点:

>>> img[1, 0]
array([125, 122,  91], dtype=uint8)>>> img[1][0]
array([125, 122,  91], dtype=uint8)

获取第一个像素点的RGB颜色的R值:

>>> img[0, 0, 2]
110
>>> img[0][0, 2]
110
>>> img[0][0][2]
110
>>> img[0, 0][2]
110

非常灵活。

OpenCV中图像的存储格式(Python版本)相关推荐

  1. OpenCV中图像Mat存储格式和MATLAB中图像Mat存储格式的区别

    首先,看一下图像中的宽高与笛卡尔坐标系之间的关系如下图所示,即x与width(cols)对应,y与height(rows)对应,x是按列来进行变化,y按行变化. OpenCV读入图像以Mat形式存储时 ...

  2. OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...

    OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式 以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下: 每一行的每一列 ...

  3. OpenCV中图像的BGR格式 Img对象的属性说明

    1. 图像的BGR格式说明 OpenCV中图像读入的数据格式是numpy的ndarray数据格式.是BGR格式,取值范围是[0,255]. 如下图所示,分为三个维度: 第一维度:Height 高度,对 ...

  4. OpenCV中图像轮廓检测

    OpenCV中图像轮廓检测 通过之前的Canny方法可以得到图像的边界,但是我们无法得到边界的数学信息.所以就有了今天的图像轮廓检测. 在OpenCV中图像轮廓检测的API: findContours ...

  5. OPENCV中图像数据结构及其转化

    OPENCV中图像数据结构及其转化 1. IplImage 它是openCV库中表示图像的结构体. 初始化: cvLoadImage(),cvCreateImage() 访问元素:[行指针] b = ...

  6. python opencv创建图像_使用Python中OpenCV库创建一幅图片的RGB通道图片

    我们知道,在使用PhotoShop进行图片的抠取.创建和存储选区.存储图像的色彩资料等复杂操作时,经常会用到一个功能,那就是"RGB"通道,它能从三原色角度对一幅图片进行精准处理. ...

  7. python图像特征提取与匹配_[OpenCV-Python] OpenCV 中图像特征提取与描述 部分 V (二)...

    部分 V 图像特征提取与描述 34 角点检测的 FAST 算法 目标 • 理解 FAST 算法的基础 • 使用 OpenCV 中的 FAST 算法相关函数进行角点检测 原理 我们前面学习了几个特征检测 ...

  8. 深入学习OpenCV中图像相似度的算法

    最近一段时间学习并做的都是对图像进行处理,其实自己也是新手,各种尝试,所以我这个门外汉想总结一下自己学习的东西,图像处理的流程.但是动起笔来想总结,一下却不知道自己要写什么,那就把自己做过的相似图片搜 ...

  9. OpenCV中图像修复技术介绍与演示

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:opencv学堂 现实中图像经常出现划伤或者被噪声腐蚀或 ...

最新文章

  1. [原]tornado源码分析系列(三)[网络层 IOLoop类]
  2. python安装pip-安装pip的三种方法
  3. Ampzz 2011 Cross Spider 计算几何
  4. 通讯编码器测试软件,西门子S7-200 SMART通过modbusRTU与绝对值编码器通信
  5. oracle 命令日志输出,ORACLE常用命令日志
  6. Android之RxJava(一)
  7. 影视小程序附带搭建教材
  8. R和RStudio下载安装详细步骤
  9. c++tcp接收文件缓存多大合适_linux高性能网络编程之tcp连接的内存使用
  10. ios 构建版本一直在处理中_app已审核通过,ios构建版本失败,提示此构建版本...
  11. 利用jquery 控制select 实例代码
  12. 微信支付curl: (60) SSL certificate problem: unable to get local issuer certificate 解决方法
  13. vue 秒转换为时分秒_三年级数学上册时分秒换算口诀(附重点习题)
  14. 计算机室教学控制软件,管鲍多媒体电子教室 电脑教学软件 广播教学软件 机房控制软件...
  15. php 识别图框,自动识别比例插入CAD图框教程
  16. 7.8 Cound 练习
  17. C语言编程入门训练(一)
  18. java 中的惰性初始化_java惰性初始化
  19. matlab图形与动画设计 pdf,MATLAB图形与动画设计
  20. java计算机毕业设计ssm+vue心理咨询网站

热门文章

  1. 微信小程序元素节点滚到某位置后固定
  2. 人工蜂群算法c语言程序,基于人工蜂群算法的炼钢连铸生产调度方法研究
  3. 程序员不是工程师吗,他们之间有什么区别?
  4. 大数据之数据质量检查
  5. 加班996,生病ICU!趁着120,这个救命利器值得被关注
  6. 小数化分数c++(附做法数学证明)
  7. 转游戏中找CALL的万能方法
  8. iptables匹配multiport
  9. 读书笔记:收敛性 ← 随机过程
  10. FME2019试用过程