Halcon1:灰度投影的运用思路
(1)灰度投影简介
函数原型: gray projections(Region, Image, Mode, HorProjection, VerProjection)
功能:计算在水平和垂直方向的灰度值投影。(可理解为记录每行、列的灰度平均值的数组,不同mode算法不同)
(2)求取灰度投影后的操作
①将灰度投影"区域化"
1)代码:
gen regionpoints(Region, VertProjection+200, [0:VertProjectionl-1)//将单个像素存储为图像区域
gen_region line(RegionLines, 0,0,0,VertProjectionl-1)//绘制直线区域
2)思路:
将灰度投影所得到的每行(列)灰度值,作为点的x (y)坐标,生成一组点区域。从而将灰度投影获得的结果可视化,后续可直接对生成的区域进行处理。
②2将灰度投影"数据化"
1)代码:
create funct 1d array(VertProjection,Function)//通过Y值序列创建函数。
smooth funct 1d mean(Function, 25, 3, SmoothedFunction)//通过多次应用平均(均值)滤波器平滑-维函数。
funct 1d to pairs(SmoothedFunction, XValues, Yvalues).//访问函数的x/y值
sub:=(YValues-VertProjection//函数y值与灰度投影所得函数值求差值
2)思路:
由于待检测的线缺陷列存在灰度突变,因此,根据求得的灰度投影值平滑出图像理论上的灰度分布函数,求取各行(列)灰度理论值与实际值的差值,可以获取灰度突变处在图像上的索引。