Sobel边缘检测的最终步骤是什么?如何处理梯度幅值|G|与梯度角θ?
Sobel边缘检测后续处理步骤
当你计算得到梯度幅值|G|和梯度角θ后,需要依次完成以下3步操作得到最终二值边缘图:
1. 非极大值抑制(NMS)
这一步梯度角θ是核心输入,目的是把粗定位的宽边缘细化为单像素宽度的边缘:
- 首先将每个像素的梯度角
θ归一到0180°/0360°区间,对应到4个主要梯度方向:水平(0°/180°)、垂直(90°/270°)、+45°、-45° - 对每个像素,沿着它的梯度方向,对比该像素和前后两个相邻像素的梯度幅值
- 如果当前像素的幅值不是三个点里的最大值,直接把它的幅值置为0,否则保留原值
2. 双阈值筛选
经过NMS处理后的幅值图需要设置高低两个阈值(通常高阈值是低阈值的2~3倍)做初步筛选:
- 幅值高于高阈值的像素直接标记为强边缘像素,直接保留
- 幅值低于低阈值的像素直接被判定为非边缘,幅值置0丢弃
- 幅值介于两个阈值之间的像素标记为弱边缘像素,留待下一步判断
3. 边缘连通性校验
这一步是为了过滤掉由噪声带来的孤立弱边缘:
- 遍历所有弱边缘像素,只要它的8邻域内存在至少一个强边缘像素,就判定为有效边缘保留
- 没有和强边缘连通的弱边缘像素全部置0丢弃
最终输出的二值图像就是Sobel边缘检测的结果。
内容的提问来源于stack exchange,提问作者Snowball
相关产品推荐
相关产品推荐

