1

私はOpenCVを学び始めたばかりで、ループでcvSetImageROIを使用する方法について質問したいと思います。問題は、画像を9つの等しい領域に分割し、各領域に線または曲線がないかどうかを確認したいということです。ただし、cvSetImageROIをループで使用して、自動的に次のリージョンに移動する方法がわかりません。

cvSetImageROI(image, one);

これは、リージョンを取得するために使用される関数です。ここで、「画像」はその領域がどこから来るべきかという画像であり、「1つ」は達成されるべき特定の領域の長方形の領域である。画像の9つの領域すべてをチェックしたい場合、どうすれば1つの長方形領域から別の領域に移動できますか?

どうもありがとうございます!

4

1 に答える 1

1

できることは、画像(幅、高さ)をwidth_step = original_width/3およびheight_step=original_height/3の長方形に分割することです。

次に、次のようなループを使用します。

for (i = 0; i < 3; i++)
   for (j = 0; j < 3; j++) 
   {
     CvRect rect;
     rect.x = i * width_step;
     rect.y = j * height_step;
     if (i < 2)
        rect.width = width_step;
     else
        rect.width = image.width - rect.x;
     if (j < 2)
        rect.height = height_step;
     else
        rect.height = image.height - rect.y; 
     cvSetImageROI(image, rect);
   }

あなたは各地域を行きます。これがお役に立てば幸いです。コードはテストされていません。

于 2011-11-21T15:22:35.960 に答える