我有几个圆圈的图像,每个圆圈大小不同。我必须找到每个圆圈的半径进行计算,所以我使用霍夫圆圈,我能够找到检测到的圆圈的半径。因为我有很多不同的圆圈尺寸如何找到哪个半径属于哪个圆?
例如,我有 3 个圆 c1、c2、c3 和霍夫检测返回我 3 半径 r1、r2、r3 现在我怎样才能得到哪个属于哪个圆。
问问题
355 次
2 回答
1
OpenCV中的霍夫圆
例如:
vector<Vec3f> circles;
HoughCircles( src_gray, circles, CV_HOUGH_GRADIENT, 1, src_gray.rows/8, 200, 100, 0, 0 );
circles 对象的中心点存储在其中。
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 回答