【从零学习OpenCV 4】4种读取Mat类元素的的方法

本文首发于“小白学视觉”微信公众号,欢迎关注公众号

本文作者为小白,版权归人民邮电出版社所有,禁止转载,侵权必究!


经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。

对于Mat类矩阵的读取与更改,我们已经在矩阵的循环赋值中见过如何用at方法对矩阵的每一位进行赋值,这只是OpenCV提供的多种读取矩阵元素方式中的一种,本小节将详细介绍如何读取Mat类矩阵中的元素,并对其数值进行修改。在学习如何读取Mat类矩阵元素之前,首先需要知道Mat类变量在计算机中是如何存储的。多通道的Mat类矩阵是一个类似于三维的数据,而计算机的存储空间是一个二维空间,因此Mat类矩阵在计算机存储时是将三维数据变成二维数据,先存储第一个元素每个通道的数据,之后再存储第二个元素每个通道的数据。每一行的元素都按照这种方式进行存储,因此如果我们找到了每个元素的起始位置,便可以找到这个元素中每个通道的数据。图2-5展示了一个三通道的矩阵的存储方式,其中连续的蓝色、绿色和红色的方块分别代表每个元素的三个通道。

【从零学习OpenCV 4】4种读取Mat类元素的的方法_第1张图片 图2-5 三通道3*3矩阵存储方式  

了解了Mat类变量的存储方式之后,我们来看一下Mat类具有的属性,我们在表2-2中列出了常用的属性,同时详细的介绍了每种属性的作用。

【从零学习OpenCV 4】4种读取Mat类元素的的方法_第2张图片 表2-2 Mat类矩

你可能感兴趣的:(OpenCV,4开发详解,OpenCV,4,C++,图像处理,计算机视觉)