霍夫圈太敏感了

问题描述

我正在尝试检测抗生素敏感性测试图像中的圆圈。使用我的代码,它检测到 7 个圆圈,但是它绘制了太多的圆圈(您可以在下面的链接中找到原始图像和结果)。如何使检测准确?

P.S:我知道我要检测的 minRadius 是 20mm≈75pixels,maxRad 是 50mm≈190pixels

import cv2
import numpy as np

image= "atbg.jpg"
img= cv2.imread(image,1)
img_orig=img.copy()
img= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = cv2.GaussianBlur(img,(21,21),cv2.BORDER_DEFAULT)

all_circs=cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,10,param1=50,param2=30,minRadius=75,maxRadius=190) 
all_circs_rounded= np.uint16(np.around(all_circs))
for (x,y,r) in all_circs_rounded[0,:]:
    cv2.circle(img_orig,(x,y),r,(0,0),3)
    cv2.circle(img_orig,2,255,255),3)

imS = cv2.resize(img_orig,(600,540))                  
cv2.imshow("output",imS) 
cv2.waitKey(0)
cv2.destroyAllWindows()

原图:

enter image description here

结果图像:

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)