OpenCVで画像の一部をちょっとずらしたいと思い、以下のコードを書きましたが、実行すると
ちょっとずれた画像でなく、何重にも重なったイメージが出ます。
ソース:
lang
1int testfinc(){ 2 //入力画像 3 cv::Mat Img = cv::imread("C:\Users\kokawa2003\Downloads\furugi6_1200.jpg", 1); 4 cv::Rect rect; 5 rect.x=237; 6 rect.y=191; 7 rect.width=30; 8 rect.height=40; 9 cv::Mat roi=Img(rect); 10 11 12 //ちょっとずらす 13 cv::Rect rect2; 14 rect2.x=rect.x+3; 15 rect2.y=rect.y+3; 16 rect2.width=rect.width; 17 rect2.height=rect.height; 18 cv::Mat dest=Img(rect2); 19 roi.copyTo(dest); 20 21 cv::imshow("res",Img); 22 cv::waitKey(0); 23 return 0; 24}
この画像の首のところが変換結果です。
何故こうなるのでしょうか。
私が分かるのは元画像と出力画像が同じだとまずいらしい。というぐらいです。
正しくオフセット移動するにはどうすればいいのですか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。