焊接机器人改进canny算子的焊缝边缘点提取
针对传统的Canny算子在2x2邻域内求取差分初值时易受噪声的影响,以至于出现提取到假边缘,或者丢失部分信息的边缘现象,本文通过实验对比,采用5:5邻域范围求取梯度幅值和梯度方向,可提高边缘检测精度和有效抑制噪声。
1)改进的canny算子
依据Canny算子定义,对于任意像素点P(i,j),其改进的5x5邻域canny算子水平方向差分算子Gx(i,j)和垂直方向差分算子Gy(i, j)分别为:
对于任意像素点p(i,j),其改进的梯度幅值M(i, j)和梯度方向θ(i.j)分别为:
2)边缘点的求取
求取图像每个像素点的梯度幅值和梯度方向后,依据扇区非极大值抑制原则,找出图像中的边缘点。如图4.1的所示,箭头方向表示梯度方向。
计算任意待检测像素点p(i,j)在5x5邻域内沿梯度方向插值点Q1和Q2的梯度幅值MQ1和MQ2,比较M(i, j)与MQ1和MQ2值,若M(i, j)为局部极大值,则p(i,j)为边缘点,否则为非边缘点,过程如下所示:
任意像素点p(i,j),在其5x5邻域内沿梯度方向对相邻的两个梯度幅值进行插值,具体步骤如下:
(1)设P(i-2, j+1), P(i-1,j+1),P(i+1,j+1),P(i+2,j+1)5个像素点的梯度幅值分别为M1,M2,M3,M4,M5。为了防止这5个梯度幅值变化过大,设定一个阈值,若:
则:
(2)用M1, M2, M3, M4, M5进行三次样条函数拟合,得到拟合函数M(i)=g(i)。
(3)计算Q1点插值的梯度幅值;
(4)同理可以求得Q2点插值的梯度幅值MQ2。
3)焊缝边缘点提取
(1)对于图像中待检测的像素点P(i,j),计算该像素点的梯度幅值M(i, j),以及沿梯度θ(i, j)方向的两个插值点Q1和Q2的梯度幅值。
(2)用p(i,j)点的梯度幅值与沿梯度θ(i, j)方向的两个插值点Q1和Q2的梯度幅值进行比较,若该点的梯度幅值M(i, j)同时大于MQi和MQz,即M (i, j)为局部梯度幅值极大值点,则该点为边缘点。否则,该点为非边缘点。
(3)重复(1), (2)步骤,对图像中每个像素点进行计算和判断。