C++経由でOpenCV 2.4のマスクを使用して、小さな画像を大きな画像に貼り付けようとしています。
マスクなしで、次のコードを使用して小さな画像を大きな画像にコピーします。
smallImage.copyTo(largeImage(cv::Rect(pt, smallImage.size()));
のpt
型を持ってい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);
正しい場所にコピーされませんが、機能します。これを解決するにはどうすればよいですか?