OpenCv (正式篇)6----core组件--Mat

3/3/2017来源:C/C++教程人气:462

因为是新手刚刚接触opencv,所以并没有Mat之前版本的opencv的开发经验,按照资料上的情况来说,opencv最开始是基于C语言的开源视觉库。在之前的版本是用lplImage来作为图像存储,,这个就涉及内存管理 。这是前话,反正我现在也不用了~

opencv函数中输出图像的内存分配是自动完成的(总之不需要手动分配内存) 使用opencv的C++的接口时不需要考虑内存分配的问题 3.

Mat数据类型

我是接触java之后来学Mat的,所以一看见这种的定义格式就知道是类(class)/* 类似于String类*/ , 反正我就当做opencv底层的数据操作的基本数据类型。

Mat 构成:

指向图像的信息(矩阵内容)的指针 content 信息头(矩阵大小,存储地址,存储方式)feature

Mat的引用的复制问题:

A/*复制的第一种情况*/ Mat A;// Mat B(A);// Mat C=A; B/*复制的第二种情况*/ Mat a; a.copyTo(Mat b); Mat c=a.clone();

现在来分析: A:只复制了信息头的内容 B : 更像克隆clone。全都复制过去。

`