gpt4 book ai didi

c++ - Second Mat 图像显示了 First Mat 图像的结果

转载 作者:太空宇宙 更新时间:2023-11-03 22:04:28 26 4
gpt4 key购买 nike

为什么一张图片会影响另一张用原始图片创建的图片?

这是一个例子,我在其中遇到了上述问题。

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.datasrc2.data 将相同。

你会感兴趣的是 src2 = src1.clone(); 只有这样 src1src2 才是独立的。

关于c++ - Second Mat 图像显示了 First Mat 图像的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36544248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com