サイズの異なる各円の中に円が少ない画像があります。計算のために各円の半径を見つける必要があるので、ハフ円を使用して、検出された円の半径を見つけることができました。異なる円がたくさんあるのでサイズどの半径がどの円に属しているかをどのように見つけることができますか?
たとえば、3つの円c1、c2、c3があり、ハフ検出により3つの半径r1、r2、r3が返されます。次に、どの円がどの円に属しているかを取得するにはどうすればよいですか。
2 に答える
1
OpenCVのハフサークル
例えば:
vector<Vec3f> circles;
HoughCircles( src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows/8, 200, 100, 0, 0 );
円オブジェクトには、中心点が格納されています。
x = circles[i][0];
y =circles[i][1];
radius = circles[i][2];
EG:これは円を描きます
for( size_t i = 0; i < circles.size(); i++ )
{
Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
int radius = cvRound(circles[i][2]);
// circle center
circle( src, center, 3, Scalar(0,255,0), -1, 8, 0 );
// circle outline
circle( src, center, radius, Scalar(0,0,255), 3, 8, 0 );
}
于 2012-11-07T15:04:09.933 に答える
1
関数 cvHoughCircles() を使用して、検出された円のパラメーターを取得できます。
于 2012-11-07T15:10:31.977 に答える