Mat:两个数据部分组成的类: 矩阵头(包含信息有矩阵的大小,用于存储的方法,矩阵存储的地址等) 和一个指针,指向包含了像素值的矩阵(可根据选择用于存储的方法采用任何维度存储数据)。矩阵头部的大小是恒定的。然而,矩阵本身的大小因图像的不同而不同,通常是较大的数量级。下面是一些简单操作:
Mat A, C; //仅创建了头部
A = imread(argv[1], CV_LOAD_IMAGE_COLOR); //在此我们知道使用的方法(分配矩阵)
Mat B(A); //使用拷贝构造函数
C = A; //赋值运算符
要在图像中创建兴趣区域 (ROI) 只需创建一个新头设置新边界:
Mat D (A, Rect(10, 10, 100, 100) );
Mat E = A(Range:all(), Range(1,3));
上面的方法都属于引用,如果要开辟新的储存空间,用clone() 或 copyTo() 函数:
Mat F = A.clone();
Mat G;
A.copyTo(G);