Mat 数据结构

时间:2019-01-23
本文章向大家介绍Mat 数据结构,主要包括Mat 数据结构使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Mat是opencv中的一种矩阵数据类型,用来存储图像。Mat类包含两个数据部分:矩阵头和指向存储所有像素值的矩阵的指针。矩阵头包含矩阵的大小尺寸、存储方法、存储地址等。在opencv中,对矩阵Mat的复制分为深复制和浅复制,与c++中的深拷贝和浅拷贝类似,深复制创建了一个读取部分的矩阵头,而浅复制只是拥有自己矩阵头,与原像素矩阵共用一个矩阵数据。所以在浅复制中,改变其中一项的像素值,其他的都会改变。
如果Mat类自己申请数据空间,则会多申请4个字节用来存储数据被引用的次数

作者:kalp_yp
来源:CSDN
原文:https://blog.csdn.net/u013539952/article/details/80186447
版权声明:本文为博主原创文章,转载请附上博文链接!
浅复制

Mat A,B;
A = imread(“dog.jpg”);
Mat C(A);
B = C;
Mat D(A,Rect(10,10,100,100));
//Mat D = A(Rect(10,10,100,100));

1
2
3
4
5
6
7
8
9
在上面的代码中,A,B,C,D共用一个数据矩阵。如下图:

深复制
Mat A = imread(“dog.jpg”);
Mat B = A.clone();
Mat C;
A.copyTo©;

作者:kalp_yp
来源:CSDN
原文:https://blog.csdn.net/u013539952/article/details/80186447
版权声明:本文为博主原创文章,转载请附上博文链接!