答案 0 :(得分:4)
大强度梯度更可能与边缘相对应 小强度梯度。在大多数情况下,无法指定a 给定强度梯度切换的阈值 对应于边缘而不是这样做。因此Canny使用 具有滞后的阈值。
具有滞后的阈值处理需要两个阈值 - 高和低。 假设重要边缘应该是连续的 图像中的曲线允许我们遵循给定的微弱部分 线并丢弃一些不构成线的噪声像素 但是产生了很大的梯度。因此,我们首先应用一个 高门槛。这标志着我们可以相当肯定的边缘 真正。从这些开始,使用方向信息 之前得到的,可以通过图像追踪边缘。追踪时 一个边缘,我们应用较低的阈值,让我们跟踪微弱 只要我们找到一个起点,边缘的部分。
完成此过程后,我们会在每个像素处都有一个二进制图像 被标记为边缘像素或非边缘像素。从 边缘跟踪步骤的互补输出,二元边缘图 以这种方式获得的也可以被视为一组边缘曲线, 进一步处理后可以表示为多边形 图像域。
另见:
阈值:使用两个具有滞后的阈值可以获得更多 灵活性比单阈值方法,但一般问题 阈值方法仍然适用。阈值设置太高可以 错过重要信息。另一方面,阈值设置得太低 将错误地识别无关信息(如噪音) 重要。很难给出一个效果很好的通用阈值 在所有图像上。尚未尝试和测试过这个问题的方法 存在。
在你的情况下,你可以稍微增加一下阈值,看它是否会减少短线。
<强>更新强>:
对于这个图像,我可能会通过对它应用较低的对比度来预处理它。在运行模糊和线检测器之前,这有助于减少图像背景中的细节。
答案 1 :(得分:2)
在Canny
之前使用GaussianBlur()将有助于删除大量不需要的细节。并且可能会增加低阈值,因为@Ken建议