切换边缘检测算子,观察当前窗口如何形成梯度或 Canny 阶段结果;只突出当前方法的边缘判定证据。
当我们要让计算机找到物体的轮廓、线条或明暗交界时,不能只看某个像素是深是浅,而要看它和周围像素的灰度变化有多大。
常用的处理办法是在小窗口里计算灰度变化:可以用一阶差分得到水平和竖直方向的变化量,再合成梯度幅值;可以用二阶导数找变化最陡的零点;也可以用 Canny 流程先平滑再求梯度、做非极大值抑制和双阈值筛选。
点击或拖动窗口到明暗交界处、平坦区域和噪声点,对比不同算子的响应图;注意灰度跳变越大的地方响应越强,而阈值和参数改变会如何影响检测到的边缘数量和粗细。
当前位置 (0, 0) 的 3×3 邻域内进行一阶梯度计算。
当前窗口中,将输入邻域与 Gx / Gy 核分别卷积,得到水平梯度 1.58 和垂直梯度 1.44;最终幅值为两者平方和的平方根。
下面对应左侧流程的三列:输入邻域(红色)、核矩阵(琥珀色)、梯度输出(翠绿色)。
切换左侧算子下拉框,对比不同边缘检测方法的特点。