激光线投射到物体上,会被物体的轮廓调制,即,激光线图像会携带物体的轮廓信息,但是激光器的工作特点使其投射的激光线有一定宽度,不符合图像处理的要求,图像中的光条纹通常具有一定的宽度,能否准确地提取光条纹中心是测量线结构光的关键步骤之一。
常见的光线中心线提取法:极值法,阈值法,灰度重心法,梯度重心法,曲线拟合法,Hessian算法等,光条提取速度与提取精度,很难同时兼顾二者。
激光线图像特点:
1.光束与被测物体相交,在被测物体表面产生光条。
2.易受影响产生畸变,不连续光条。
3.这种程度包含了物体表面的深度信息。
极值法:利用光带中心点位于光带横截面灰度的极大值处这一特性,找到光强的极大值即获得光带中心。
阈值法是在结构光光条特性以及被测物体表面特性相同的情况下,阈值分割处理后,将光条横截面中灰度值大于预设门限的左右两像素为起点和终点,二者的平均位置即光条中心。
灰度重心法利用数学上质心的定义,将灰度值作为质量处理,计算沿坐标轴方向的灰度重心点来代表该截面的激光条纹的中心点位置,按照行或者列遍历图像,拟合得到的点作为激光条纹的中心线。其公式为:
看了某位大神的OpenCV的代码,然后尝试转换成了MATLAB的代码。
MATLAB代码:
clear;