c++ - OpenCV copyTo() 掩码错误

标签 c++ opencv mask

我正在尝试通过 C++ 在 OpenCV 2.4 中使用蒙版,将较小的图像粘贴到较大的图像中。
在没有 mask 的情况下,我使用以下代码将小图像复制到大图像:

smallImage.copyTo(largeImage(cv::Rect(pt, smallImage.size()));

其中 pt 的类型为 cv::Point2f。它工作得很好。但是,如果我戴上面具:

smallImage.copyTo(largeImage(cv::Rect(pt, smallImage.size()), mask);

我从 Mat::create 得到一个错误(参见 documentation ):

CV_Assert(!fixedType() || (CV_MAT_CN(type) ==
    m.channels() && ((1 << CV_MAT_TYPE(flags)) & fixedDepthMask) != 0));

如果我从我的代码中删除 cv::Rect,将其简化为:

smallImage.copyTo(largeImage, mask);

它可以工作,尽管它没有复制到正确的位置。我该如何解决这个问题?

最佳答案

下面的代码没有任何错误。

    Mat large_img = imread("C:\\Koala.jpg");
    Mat small_img;
    resize(large_img,small_img,Size(100,100),1);
    small_img.copyTo(large_img (Rect(100,100,100,100)));
    imshow("Rsult",large_img);
    waitKey(0);

小图像是大图像的重新调整大小的版本,它在大图像中的 b/w (100,100) 位置复制到 (200,200)。您可以根据需要采用这些线路。

关于c++ - OpenCV copyTo() 掩码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315258/

相关文章:

c++ - 设置库之间的依赖关系 (CMake)

c++ - 32 位音频转 24 位

image-processing - 'cvFindContours' 未在此范围内声明,opencv 2.4.2,编译错误

python - 如何改善圆检测

Jquery 验证器和掩码插件

html - SVG - 如何移动图像背景但蒙版保持粘性

C++ bool 代数

java - 如何在 Java 中使用 OpenCV 检测图像中的线条

python-3.x - OpenCV 掩码结果

c++ - 如何将 map<string, map<int, int>> 的内容打印到 cout 中?