画像の一部があり、写真に示すように 25 ピクセル分下に移動したいと考えています。
シフトダウンしたい領域のマスクがあります。画像の合計サイズは変更しないでください。というわけで、操作は切り貼りです。切り取った領域は 0 または 255 で埋めることができます。
プラットフォームは C++
画像の一部があり、写真に示すように 25 ピクセル分下に移動したいと考えています。
シフトダウンしたい領域のマスクがあります。画像の合計サイズは変更しないでください。というわけで、操作は切り貼りです。切り取った領域は 0 または 255 で埋めることができます。
プラットフォームは C++
2 つのサブイメージを作成します。1 つsub1
目は移動するパターンの周囲にあり、2 つ目sub2
は と同じサイズで移動sub1
先の周囲にあります。にコピーsub1
してから、黒または白でsub2
塗りつぶします。sub1
明らかに、2 つのサブイメージと同じサイズでトリミングされたマスクを使用する必要があります。
これは、アイデアを説明するための疑似コードです。
cv::Mat YourImage;
cv::Mat YourMask;
std::vector<cv::Point> YourPatternContour;
cv::Rect sub1ROI = cv::boundingRect(YourPatternContour);
cv::Mat sub1 = YourImage(sub1ROI);
cv::Mat mask = YourMask(sub1ROI);
cv::Rect sub2ROI = sub1ROI + cv::Point(25,25);
cv::Mat sub2 = YourImage(sub2ROI);
sub1.copyTo(sub2, mask);
sub1.set(0, mask);