现在的位置: 首页 > 综合 > 正文

OpenCV学习:Mat类详细解析+源码剖析(一)

2013年09月10日 ⁄ 综合 ⁄ 共 749字 ⁄ 字号 评论关闭

Mat类是一种基础的数据结构,属于OpenCV中的C++系列函数(类),摸清Mat的脉络,有助于进行后续的图像处理工作,下面就好好说说Mat类。

OpenCV中Mat类声明路径:opencv-2.4.5/modules/core/include/opencv2/core/core.hpp

OpenCV中Mat类实现路径:opencv-2.4.5/modules/core/include/opencv2/core/mat.hpp

                                                 opencv-2.4.5/modules/core/src/matrix.cpp

Mat类声明如下:

class CV_EXPORTS Mat
{
   //Mat类有许多成员函数,为了理清Mat的结构,这里只列出Mat类的重要的数据成员,其他数据成员以及函数成员以后慢慢解析
    ......
public:
    int flags;//标志位,比如图像有几个波段等
    int dims;//矩阵的维数
    int rows, cols;//矩阵的行数和列数
    uchar* data;//指向数据的指针,Key Point!注意,指向数据的指针这里是unsigned char类型的。

    int* refcount;//指向引用计数器(C++中著名的引用计数器)
    ......
 };

好了,Mat的基础数据结构就如上所示了,下面就从Mat的成员函数入手,揭开Mat这个OpenCV基本数据结构的神秘面纱。

这些函数,我们不能一股脑地从上到下讲解,总应该有些逻辑性。我们对这些函数做如下划分:

(1)构造函数,析构函数

(2)矩阵元素定位函数:at族和ptr族函数

(3)Mat中重要数据成员size和step

抱歉!评论已关闭.