不同边缘检测器的阈值具有可比性吗?

时间:2019-05-11 01:44:49

标签: matlab edge-detection threshold canny-operator sobel

我正在分析不同边缘检测器(Canny,Sobel和Roberts)的性能。 Matlab为我们提供了函数edge,该函数具有参数阈值作为其输入之一。我对所有这些对象都设置了相同的阈值(= 0.1)(Matlab自动为Canny探测器生成了低阈值)。根据我编写的代码,结果是:

shows results of edge detectors, thresholded, with each finding a different amount of edges

(忽略了LoG检测器,我想我可以解释这些结果)。

在那之后,我测试了那些相同的滤波器,但是阈值不同(= 0.8,这为Canny的检测器提供了0.32的低阈值)。但是,现在只有Canny可以检测到与较强边缘相关的边界(与将具有较高对比度的结构分开的边界相关联的较强梯度):

shows same results for higher threshold, some methods don’t find any edges

我无法理解这些结果,因为如果Canny检测到更强的边界,而Sobel对更强的边界更敏感(如我们所见,阈值= 0.1,它几乎只能检测到强度的突然变化),那么为什么Sobel似乎没有计算可与Canny给出的估计值相比的估计值?

随之而来的另一个问题是:Canny,Sobel和Roberts的阈值到底意味着什么?我会说它们是梯度大小的值,以某种方式归一化,因为它必须属于[0,1](我也不理解,相对于什么归一化?)

1 个答案:

答案 0 :(得分:0)

不同的边缘检测器没有理由要求相等的阈值,因为它们对不同类型的边缘有不同的响应(就对比度,清晰度,噪声而言),并且没有阈值会分割相同的边缘集。

此外,取决于实现方式,公式可以具有不同的“缩放因子”。最好的希望是,如果您在同一张图像上选择适合不同方法的阈值,则这些阈值将在其他图像上成比例地变化。