Mat类
Mat类在文件D:\OpenCV\opencv\build\include\opencv2\core\core.hpp
文件中定义class CV_EXPORTS Mat
,包含指向用于存储图像像素值的矩阵的指针,以及矩阵的相关信息。在程序中传递图像并创建拷贝时,矩阵会造成很大的开销,所以应该在程序中避免拷贝大的图像。OpenCV中关于Mat的拷贝只拷贝矩阵信息以及矩阵指针。如果想要把矩阵本身也拷贝,可以用函数clone()
或者copyTo()
。
这个矩阵中存储的是什么才能表示一幅图片呢?最简单的方式是只存储灰度,也就是每个像素点对应一个值;对于有颜色的图,最常用的存储方式是RGB(因为我们的眼睛就是这样识别颜色的),每个像素点上对应三个值,需要注意的是OpenCV的存储顺序是BGR。那么值的类型有什么讲究?可以是char型,因为char类型是8bits,所以只能存储256个值,[0, 255]或者[-127, +127];可以是float(32bits)、double(64bits)。
如果内存足够大,那么就可以按行连续存储,我们可以认为