如何在openCV中选择边缘检测的阈值?

时间:2011-05-20 10:23:57

标签: opencv edge-detection

我的申请是检测硬币。我使用OpenCv完成了大部分工作。 我使用CannyDetection和houghTransform来检测图像圈。

但我没有得到正确的硬币圈,我认为这可能是ThresoldValues传递给cannyEdgeDetector的问题。任何人都可以告诉我如何选择用于检测硬币圆圈的thresold值。

感谢你, Srinivas

2 个答案:

答案 0 :(得分:0)

如果您要发布问题的图像,那么回答会更容易。但有一个想法是cannyEdgeDetector在轮廓输出上使用循环Hough transform。这会降低对不良阈值的敏感度。

答案 1 :(得分:0)

为了选择阈值,需要考虑很多事情。

首先,Canny对迟滞非最大值抑制使用两个阈值,一个低阈值和一个高阈值。 通常优选选择高阈值为低阈值的两倍。

降低阈值 - 幅度小于该值的边将被抑制

更高的阈值 - 幅度大于的边将保留

仅当谎言/连接到高阈值边缘点时,才会保留

低和高之间的边。

高阈值和低阈值的选择完全取决于您的边缘强度。如果您的硬币有明亮的边界,您可以选择80和160但是如果硬币边缘的强度较低,则低阈值的值为30-50,高阈值的值为60-100就足够了,

我想补充一点,如果你选择低阈值,一些额外的不需要的边缘也会出现,但如果你的硬币边缘的强度是那么大,那么你被迫选择较低的阈值。