Canny Edge Image - 去除噪音

Baz*_*rds 7 image-processing edge-detection

我有一个Canny边缘检测到的球的图像(见下面的链接),其中包含许多嘈杂的边缘.什么是最好的图像处理技术,我可以用来删除这些嘈杂的边缘而不删除属于球的边缘?

原始图像

原版的

Canny边缘图像

谨慎的

非常感谢大家的帮助和建议,非常感谢!

Ps我试图在使用Circle Hough Transform来检测球之前清理边缘图像.

gui*_*gui 7

最佳选择是在应用边缘检测器之前过滤图像.为了保持锐利边缘,您需要使用比高斯模糊更复杂的滤镜.

两个简单的选项是双边滤波器引导滤波器.这两个滤波器非常易于实现,并且在大多数情况下都能提供良好的结果:高斯噪声去除保留边缘.如果您需要更强大的功能,可以尝试过滤器BM3D,它是最先进的过滤器之一,您可以在这里找到一个开源实现.


Jer*_*uke 7

只有在您设置了最佳阈值级别(下限和上限阈值)后,Canny 边缘检测才能发挥最佳效果

你如何设置它们?

  • 首先,计算灰度图像的中值
  • 使用图像的中值选择最佳阈值。

以下伪代码向您展示了它是如何完成的:

v = np.median(gray_img)
sigma = 0.33

#---- apply optimal Canny edge detection using the computed median----
lower_thresh = int(max(0, (1.0 - sigma) * v))
upper_thresh = int(min(255, (1.0 + sigma) * v))
Run Code Online (Sandbox Code Playgroud)

设置lower_threshupper_thresh作为 Canny 边缘函数的参数。

sigma设置为0.33是因为在沿分布曲线的统计中,考虑了距离曲线起点和终点 33% 之间的值。超出和低于该曲线的值被视为异常值。

这是我为你的形象得到的:

在此处输入图片说明


Sam*_*ett 2

删除这些内容的最佳方法可能是如果可以的话,一开始就不要使用它们。如果线条是图像中的噪声伪影,请应用平滑滤波器(例如高斯滤波器)来平整图像。->高斯滤波器信息

一旦它们存在,将它们移除是很棘手的,并且可能会涉及一些更高级别的形状识别内容