1

OpenCV を使用した画像処理に関するサンプル コードは次のようになります。

for(i=0;i<height;i++)
{
      for(j=0;j<width;j++)
      {
          if(pointPolygonTest(Point(i,j),myPolygon))
          {
                 // do some processing
          }
      }
}

繰り返しの中で、なぜ高さと幅から始める必要があるのでしょうか? また、 Point が (高さ、幅) を格納する理由は -> (y,x) ですか?

4

2 に答える 2

2

[0..Height] と [0..Width] の間の範囲は、作業領域の最大境界です。

このコードは、画像全体のどのピクセルがポリゴン内にあるかをテストしていmyPolygonます。

「全体」という言葉は、画像のすべてのピクセルをチェックする必要があることを意味するため、Y の場合は 0 から高さまで、X の場合は 0 から幅まで反復する必要があります。

于 2013-01-13T14:46:16.330 に答える
1

実際、ここでは、行/列の規則を使用して画像全体を反復処理しています。

高さ = 行数

幅 = 列数

画像は行単位でアクセスされています。外側のループは画像の行を反復処理しており、内側のループは列を反復処理しています。したがって、基本的にiは現在の行でjあり、画像の現在の列です。

内側のループは、画像の行全体を処理します。

于 2013-01-13T15:25:38.407 に答える