检测图像中的圆圈

时间:2015-12-09 22:56:16

标签: c# opencv emgucv

我目前正在使用EmguCV对拍摄范围目标的图像进行形状检测:enter image description here

但无论我在代码中的设置如何(

double cannyThreshold = 180; double circleAccumulatorThreshold = 170; CircleF[] circles = CvInvoke.HoughCircles(uimage, HoughType.Gradient, 2.0, 1.0, cannyThreshold, circleAccumulatorThreshold, 5);

我似乎只能找到三个圆圈,其中一个是错误的。 enter image description here

我是不是错了?我正在使用Rev3.0 EmguCV中包含的形状检测的默认示例。

1 个答案:

答案 0 :(得分:2)

  1. 首先找到边缘(例如,参见Sobel算子或Canny)
  2. 查找轮廓,然后轮廓将代表圆圈
  3. 按区域过滤轮廓
  4. 使用minEnclosingCircle为每个轮廓获得中心和 半径。