gpt4 book ai didi

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

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

我正在尝试通过 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/

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