我正在尝试使用C#的EmguCV 2.2来检测这个图像中的圆,但是没有成功。使用带有cv2 python包的OpenCV,以下代码可以在上面的图像中正确找到8个圆:
为了简洁起见,我将省略绘制圆形图像的代码,但是参考输出结果——假设我使用cv2.circle将每个找到的圆形填充为绿色,如下所示:然而,我似乎无法在C#中找到相同的圆。我已经尝试了各种参数,但是以下代码并没有在图像中找到任何圆形:
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)
为了简洁起见,我将省略绘制圆形图像的代码,但是参考输出结果——假设我使用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 个圆的帮助将不胜感激!
提前感谢您的帮助!