我的申请是检测硬币。我使用OpenCv完成了大部分工作。 我使用CannyDetection和houghTransform来检测图像圈。
但我没有得到正确的硬币圈,我认为这可能是ThresoldValues传递给cannyEdgeDetector的问题。任何人都可以告诉我如何选择用于检测硬币圆圈的thresold值。
感谢你, Srinivas
答案 0 :(得分:0)
如果您要发布问题的图像,那么回答会更容易。但有一个想法是cannyEdgeDetector在轮廓输出上使用循环Hough transform。这会降低对不良阈值的敏感度。
答案 1 :(得分:0)
为了选择阈值,需要考虑很多事情。
首先,Canny对迟滞和非最大值抑制使用两个阈值,一个低阈值和一个高阈值。 通常优选选择高阈值为低阈值的两倍。
降低阈值 - 幅度小于该值的边将被抑制
更高的阈值 - 幅度大于的边将保留
仅当谎言/连接到高阈值边缘点时,才会保留和低和高之间的边。
高阈值和低阈值的选择完全取决于您的边缘强度。如果您的硬币有明亮的边界,您可以选择80和160但是如果硬币边缘的强度较低,则低阈值的值为30-50,高阈值的值为60-100就足够了,
我想补充一点,如果你选择低阈值,一些额外的不需要的边缘也会出现,但如果你的硬币边缘的强度是那么大,那么你被迫选择较低的阈值。