天天看点

详解OpenCV的Mat类(构造方法、初始化方法、常用属性、常用成员函数、常用操作)

详解OpenCV的Mat类(构造方法、初始化方法、常用属性、常用成员函数、常用操作)

OpenCV从2.x开始采用全新的基于C++的图像数据结构来代替用C语言写成的cvMat和IplImage数据结构,这使得开发效率大大提高。

Mat结构不需要我们为图像数据的存储手动开辟空间,也不需要手动释放存储空间,Mat类能够自动管理内存。

Mat类使用了C++的智能指针概念,即保存了数据被引用的次数,当数据被引用的次数为0时,会自动释放相应的内存空间。

Mat类由矩阵头和指向存储所有像素值的矩阵的指针构成。

矩阵头用来刻画矩阵的尺寸、存储方法、存储地址及引用次数等信息,矩阵头的大小是一个常数,不会随图像的大小变化而改变,但是保存图像像素数据的矩阵则会随图像的大小变化而改变。在图像的复制和传递过程中,内存主要的开销是由存放图像的像素矩阵引起的。

对于一个类的学习,主要需要掌握其常用的构造方法、初始化方法、常用属性、常用成员函数、常用操作。

下面三篇博文详细讲述了Mat类常用的构造方法、初始化方法、常用属性、常用成员函数、常用操作。

OpenCV_Mat类对象常用的构造方法及初始化方法

OpenCV_Mat类对象常用属性值的获取方法

OpenCV_Mat类对象的基本操作、常用操作及相关成员函数介绍