如何在 openCV 中为边缘检测选择脱粒值



我的应用程序是检测硬币。我大部分时间都是使用 OpenCv 完成的。我正在使用CannyDetection和houghTransform来检测图像的圆圈。

但是我没有得到正确的硬币圈,我认为ThresoldValues传递给cannyEdgeDetector可能是问题。谁能告诉我如何选择脱粒价值来检测硬币圈。

谢谢你,斯里尼瓦斯

如果您发布问题的图像,则更容易回答。不过,一个想法是在CannyEdgeDetector输出的轮廓上进行圆形霍夫变换。这将降低错误阈值的灵敏度。

对于选择阈值,很多事情都需要考虑。

首先,Canny使用两个阈值来表示滞后和非最大值抑制,一个是低阈值,一个是高阈值。一般倾向于选择高阈值为低阈值的两倍。

下限阈值 -- 幅度小于该值的边将被隐含

更高的脱粒 -- 具有大于将保留的幅度的边

以及仅当位于/连接到高阈值边缘点时,才会保留低和高之间的边

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

我想

补充的一件事是,如果您选择低阈值,也会出现一些额外的不需要的边缘,但是如果您的硬币边缘的强度达到该大小,那么您将被迫选择较低的阈值。

相关内容

  • 没有找到相关文章

最新更新