如果在赋值的时候使用 “ = ”,但却对 “=” 的用法不熟悉,程序最终结果可能和自己预料的结果千差万别,而且问题原因及其难找!!!自己碰到过两三次,都是在蒙头一顿分析后才恍然记起 “ = ”的用法是特殊的,所以有必要记录下来.
Mat类
Mat类由两部分组成:
矩阵头(包含矩阵尺寸,存储方法,存储地址等信息);
指针 (指向存储所有像素值的矩阵(根据所选存储方法的不同矩阵可以是不同的维数);
copyTo、clone、=、拷贝构造函数
copyTo函数和clone函数拷贝的不仅仅是信息头,还有矩阵本身;
赋值运算符和拷贝构造函数仅仅拷贝信息头;
如以下程序:
Mat src1 = imread("1.jpg");
Mat src2, src3;
src2=src1;
src1.copyTo(src3);
其中 src2 和 src1 共用一个矩阵,所以当改变二者中的任意一个,另外一个会随之改变;
其中 src3 和 src1 各有一个矩阵相互独立;