我正在尝试找到图像的轮廓,在此之前我正在使用Canny的边缘检测器。 它为不同的图像提供了不同的结果。对于一个图像,它在阈值处给出了完美的轮廓 - 最小-40 max-240,而对于其他图像则为30-120。 我想让它变得通用。
答案 0 :(得分:8)
在外行人看来,边缘检测需要一个阈值来判断应将哪些差异/变化计算为边缘。有关详细信息,请阅读here。
因此,边缘取决于图像的内容,即亮度/暗度/对比度。 我建议你简单地找到整个灰度图像的平均值,并采取如下阈值:
min_threshold = 0.66 * mean
max_threshold = 1.33 * mean
我测试了它,它给出了令人印象深刻的结果。您可以使用中位数而不是平均值,结果几乎相同。另一种方法是首先均衡图像,然后尝试选择/实验的阈值。
但再次强烈建议尝试卑鄙的方法。如有任何疑问,请写在这里。
快乐编码:)