为什么一个图像结果会影响用原始图像创建的其他图像?
这是一个我面对上述问题的例子。
Mat src = imread ("A.jpg");
Mat src1 = src;
Mat src2 = src;
Process (src1);
imshow ("src1_result", src1);
imshow ("src2", src2);
注意: “ src2”显示src1的结果,这是我的问题。**为什么?。另外,当我再次用原始图像设置src2时,如下所示。
src2 = src;
src2仍显示src1的结果。
为什么?,有人看到过这个问题吗?
当您执行时src2 = src1
,src2
不是的克隆src1
,而是仅指向包含src1
像素值的相同存储位置。出于优化目的,这只是opencv设计的工作方式。
您实际上可以通过检查两个变量的.data
指向像素值的指针来自己检查。在您的示例代码中,src1.data
和src2.data
将相同。
您只会对src2 = src1.clone();
那时感兴趣,src1
并且src2
它们是独立的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句