0

特定のピクセルの位置が長方形の中心になるように、画像上に長方形の ROI を作成しようとしています。どうすればいいですか?

image= imread("C:\\image.png",1);
watermark=imread("C:\\watermark.png",0);
split(image,yuv_channels);

ROI=yuv_channels[0](Rect(100,100,watermark.cols,watermark.rows)); 

位置 (100,100) が ROI の中心になるように変更するにはどうすればよいですか?

ご協力いただきありがとうございます。

4

3 に答える 3

0

以前はc#で実行しましたが、Imageクラスに関数があります。'SetROI()'というメソッド、お役に立てば幸いです

于 2012-12-26T07:23:42.197 に答える
0

私が理解しているかどうかはわかりませんが、ポイント (rect.x, rect.y) を四角形の中央に配置したいだけの場合は、次のコードを使用してください。

Rect rect = Rect(100, 100, 234, 456);
rect -= Point(rect.width/2, rect.height/2)

または、これを 1 行で実行する場合は、次のようにします。

Rect rect = Rect(100 - watermatk.cols/2, 100 - watermark.rows/2, watermark.cols, watermark.rows);
于 2012-12-26T22:15:31.820 に答える
0

x、y を中心とする MxM の長方形を作成するには、次のコードを使用します。OpenCVのrect関数で点a,bを四角形のアンカーポイントとして利用可能

    Point a;
    Point b;
    //MxM rectangle
    a.x = x - M/2;
    a.y = y - M/2;
    b.x = x + M/2;
    b.y = y + M/2;
于 2012-12-26T08:38:03.383 に答える