我的应用是检测硬币。我已经使用 OpenCv 完成了大部分工作。我正在使用 CannyDetection 和 houghTransform 来检测图像圆圈。
但是我没有得到正确的硬币圈,我认为 ThresoldValues 传递给 cannyEdgeDetector 可能有问题。谁能告诉我如何选择阈值来检测硬币圈。
谢谢你,斯里尼瓦斯
我的应用是检测硬币。我已经使用 OpenCv 完成了大部分工作。我正在使用 CannyDetection 和 houghTransform 来检测图像圆圈。
但是我没有得到正确的硬币圈,我认为 ThresoldValues 传递给 cannyEdgeDetector 可能有问题。谁能告诉我如何选择阈值来检测硬币圈。
谢谢你,斯里尼瓦斯
如果您发布您的问题的图像,它会更容易回答。一个想法是对cannyEdgeDetector 输出的轮廓进行循环霍夫变换。这将降低对坏阈值的敏感性。
对于选择阈值,需要考虑很多事情..
首先,Canny 对迟滞和非最大值抑制使用两个阈值,一个低阈值和一个高阈值。一般优先选择高阈值是低阈值的两倍。
下阈值- 幅度小于该阈值的边缘将被抑制
更高的阈值——幅度大于的边缘将被保留
只有当位于/连接到高阈值边缘点时, 才会保留低和高之间的边缘。
高低阈值的选择完全取决于您的边缘强度。如果您的硬币边界明亮,您可以选择 80 和 160 但如果硬币边缘强度较低,则低阈值 30-50 和高阈值 60-100 之类的值就足够了,
我还想补充一件事,如果您选择低阈值,也会出现一些额外的不需要的边缘,但是如果您的硬币边缘的强度达到那个量级,那么您将被迫选择较低的阈值。