精明的边缘检测器阈值给出了不同的结果



我正在尝试找到图像的轮廓,在此之前我正在应用Canny的边缘检测器。它对不同的图像给出了不同的结果。对于一幅图像,它给出了完美的轮廓阈值- min-40 max-240和其他图像的30-120。我想让它通用

通俗地说,边缘检测需要一个阈值来告诉哪些差异/变化应该被算作边缘。详情请参阅此处。

所以,边缘取决于图像的内容,即亮度/暗度/对比度的水平。我建议你直接求出整个灰度图像的均值,取阈值如下:

min_threshold = 0.66 * mean

max_threshold = 1.33 * mean

我已经测试了它,它给出了令人印象深刻的结果。你可以用中位数代替平均值,结果几乎是一样的。另一种选择是先均衡图像,然后尝试您选择的阈值/实验。

但再次强烈建议尝试平均方法。如有疑问,请写在这里。

Happy Coding:)

最新更新