我正在尝试通过 C++ 使用 OpenCV 2.4 中的掩码将较小的图像粘贴到较大的图像中。
没有蒙版,我使用以下代码将小图像复制到大图像:
smallImage.copyTo(largeImage(cv::Rect(pt, smallImage.size()));
wherept
的类型为cv::Point2f
. 它完美地工作。但是,如果我使用面膜:
smallImage.copyTo(largeImage(cv::Rect(pt, smallImage.size()), mask);
我收到一个错误Mat::create
(请参阅文档):
CV_Assert(!fixedType() || (CV_MAT_CN(type) ==
m.channels() && ((1 << CV_MAT_TYPE(flags)) & fixedDepthMask) != 0));
如果我cv::Rect
从我的代码中删除,将其简化为:
smallImage.copyTo(largeImage, mask);
它可以工作,尽管它没有复制到正确的位置。我该如何解决这个问题?