OpenCv copyTo() not working

OpenCv copyTo() not working

本文关键字:not working copyTo OpenCv      更新时间:2023-10-16

我想使用openCv的copyTo()函数对图像应用遮罩,但遮罩不起作用。我仍然得到相同的图像。

当我在网上搜索时,我看到了一些建议,如:

-源图像和目标图像必须不同,-源图像必须具有CV_8U类型,-mask image必须有CV_8U等类型

我试了所有的,但我不能解决这个问题。此外,在官方的OpenCv网站上,没有提到这样的限制。

这是我的一部分代码:

Mat source; //initialized in some way
Mat mask; // this is also initialized in some way
source.copyTo(source, mask);

您的蒙版应该是单通道图像,值为0255

Mat mask(source.rows, source.cols, CV_8UC1, Scalar(0));

使用上面的掩码图像,您应该在目的地得到一个空白图像,因为所有的掩码值都是零。

使用下面的蒙版,您应该能够获得与源图像相同的目标图像,因为您的整个蒙版图像被255值激活。

Mat mask(source.rows, source.cols, CV_8UC1, Scalar(255));

对于其他一些蒙版,只有图像的少数区域包含白色像素,您将在目标图像中获得源图像的这些区域。