【发布时间】:2014-08-09 03:23:48
【问题描述】:
我正在尝试使用 EmguCV 2.2 和 C# 检测此图像中的圆圈,但没有任何运气。
将 OpenCV 与 cv2 python 包一起使用,以下代码正确找到了上图中的 8 个圆圈:
img = cv2.imread('test2.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray, cv2.cv.CV_HOUGH_GRADIENT, 1, 10, param1=15, param2=10, minRadius=5, maxRadius=5)
为简洁起见,我将省略将圆圈绘制到 img 上的代码,但作为参考输出 - 假设我使用 cv2.circle 用绿色填充每个找到的圆圈,如下所示:
但是我似乎无法使用 C# 找到相同的圆圈。
我已经玩过参数了,但是尝试如下代码在图像中找不到任何圆圈:
var gray = new Image<Gray, byte>("test2.png");
var circles = gray.HoughCircles(
accumulatorThreshold: new Gray(16), dp: 1,
cannyThreshold: new Gray(9),
minDist: 10, minRadius: 4, maxRadius: 6)[0];
任何用 C# 找到这 8 个圆圈的帮助将不胜感激!
提前感谢您的帮助!
【问题讨论】: