4

cv.rectangleを使用して長方形を描画し、長方形が描画される輪郭形状(FindContoursから)を持っています。

長方形は、2点で完全な輪郭と交差します。長方形と輪郭の輪郭の間のこれらの交点を見つけるにはどうすればよいですか。

2つの画像を足し合わせて最大値を探すこともできますが、点のセットで満たされた線種のベクトルが必要になるため、長方形の頂点がどのように格納されるかはわかります。

ありがとう

4

1 に答える 1

2

長方形が2点でのみ形状と交差することが確実な場合は、輪郭点を反復処理して、これらの点が長方形の境界にあるかどうかを確認できます。

std::vector<cv::Point> shape; // computed with FindContours
cv::Rect myRect; //whatever

const int NUMPOINTS = 2;
int found = 0;
for(std::vector<cv::Point>::iterator it = shape.begin(); it != shapes.end() && found < NUMPOINTS; ++it) {
  if (it->y == myRect.y && it->x >= myRect.x && it->x < myRect.x + width)
    // that point cross the top line of the rectangle
    found++; // you might want to store the point
  else if (// ... add the other checks here)

}  
于 2012-10-05T21:14:40.670 に答える