opencv 显微图像中的圆形检测(噪声)

lsmd5eda  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(127)

我正在做一个项目,我必须开发一个自动化显微镜。我需要一个能够识别圆的算法。我能够得到一个能够处理噪音和找到圆的算法,但如果实验设置发生了一些变化,它就不再工作,因为参数调整不当(不是我想要的)。
我已经尝试了多种方法,其中最有效的方法是使用CLAHE,然后模糊图像。之后我在霍夫圆上运行结果。我将展示一个例子。这是在当前算法上不起作用的原始数据:

应用CLAHE后,我得到:

霍夫圆只能找到一个圆:

另一种方法是使用直方图均衡化:

这样可以给予更清晰的圆,但霍夫圆根本不起作用。有时我会做一些增益除法来去除背景,然后只应用直方图均衡化:
equilize histogram after doing gain division
直方图均衡化总是提高对比度,所以我的想法是切换到这个CLAHE,但我不能。
该站点https://fiveko.com/online-tools/hough-circle-detection-demo/对直方图均衡化后的每个数据进行处理。
有没有人能提供一种方法来检测均匀直方图图像中的圆圈?由于噪音,它会在背景中创建随机圆圈。

3duebb1j

3duebb1j1#

我能做的最好的就是调整高斯模糊和HoughCircles来适应你提供的一个均衡历史图像。希望它比看起来更通用,并能在某种程度上帮助你。

blur = cv2.GaussianBlur(gray, (11, 11), 0)
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 20, 
                           param1=180, param2=17, minRadius=2, maxRadius=50)

相关问题