什么是Canny阈值?

时间:2013-06-18 09:24:15

标签: opencv computer-vision edge-detection

是否可以让Canny忽略短边或忽略低渐变边缘?在我的情况下,我有卡躺在木头上,看到canny之后的木结构的许多边缘

enter image description here

canny函数中有两个阈值?

2 个答案:

答案 0 :(得分:4)

  

大强度梯度更可能与边缘相对应   小强度梯度。在大多数情况下,无法指定a   给定强度梯度切换的阈值   对应于边缘而不是这样做。因此Canny使用   具有滞后的阈值。

     

具有滞后的阈值处理需要两个阈值 - 高和低。   假设重要边缘应该是连续的   图像中的曲线允许我们遵循给定的微弱部分   线并丢弃一些不构成线的噪声像素   但是产生了很大的梯度。因此,我们首先应用一个   高门槛。这标志着我们可以相当肯定的边缘   真正。从这些开始,使用方向信息   之前得到的,可以通过图像追踪边缘。追踪时   一个边缘,我们应用较低的阈值,让我们跟踪微弱   只要我们找到一个起点,边缘的部分。

     

完成此过程后,我们会在每个像素处都有一个二进制图像   被标记为边缘像素或非边缘像素。从   边缘跟踪步骤的互补输出,二元边缘图   以这种方式获得的也可以被视为一组边缘曲线,   进一步处理后可以表示为多边形   图像域。

另见:

  

阈值:使用两个具有滞后的阈值可以获得更多   灵活性比单阈值方法,但一般问题   阈值方法仍然适用。阈值设置太高可以   错过重要信息。另一方面,阈值设置得太低   将错误地识别无关信息(如噪音)   重要。很难给出一个效果很好的通用阈值   在所有图像上。尚未尝试和测试过这个问题的方法   存在。

在你的情况下,你可以稍微增加一下阈值,看它是否会减少短线。

来源:
https://en.wikipedia.org/wiki/Canny_edge_detector#Tracing_edges_through_the_image_and_hysteresis_thresholding

<强>更新

对于这个图像,我可能会通过对它应用较低的对比度来预处理它。在运行模糊和线检测器之前,这有助于减少图像背景中的细节。

答案 1 :(得分:2)

Canny之前使用GaussianBlur()将有助于删除大量不需要的细节。并且可能会增加低阈值,因为@Ken建议