Halcon 灰度投影及其应用

孤街浪徒 提交于 2020-02-22 18:55:19

算子介绍:
一、gray_projections算子
①gray_projections(Region, Image, Mode,HorProjection, VertProjection)
Region:待处理区域
Image:待投影的灰度图
Mode:计算投影的方式,有’simple’、 ‘rectangle’,‘simple’
HorProjection:水平方向投影
VertProjection:竖直方向投影

②功能介绍
计算水平和垂直灰度值投影。

二、create_funct_1d_array算子
①create_funct_1d_array( YValues ,Function)
YValues :函数的x点的值
Function:函数值
②功能介绍
根据y值序列创建函数。

三、smooth_funct_1d_gauss算子
①smooth_funct_1d_gauss( Function, Sigma , SmoothedFunction)
Function:待平滑的函数
sigma:平滑因子
SmoothedFunction:平滑后的函数

②功能介绍
对原函数进行高斯平滑

四、tuple_max算子
①tuple_max(tuple,max)
tuple:元组
max:元组中的最大值

Tip:灰度投影可理解为记录每行、列的灰度平均值的数组,不同mode算法不同。将灰度投影所得到的每行(列)灰度值,作为点的x (y)坐标,生成一组点区域。从而将灰度投影获得的结果可视化,后续可直接对生成的区域进行处理。由于待检测的线缺陷列存在灰度突变,因此,根据求得的灰度投影值平滑出图像理论上的灰度分布函数,求取各行(列)灰度理论值与实际值的差值,可以获取灰度突变处在图像上的索引。

五、代码

*读取图像
read_image(Image,'img.png')
*截取图像
crop_part(Image,Region,10,10,90,90)
*灰度投影
gray_projections(Region,Image,'simple',HorProjection,VertProjection)
*创建竖直方向的一维函数
create_funct_1d_array(VertProjection,Function)
*积分曲线平滑
smooth_funct_1d_gauss(Function,2,SmoothedFunction)
*把平滑后结果中的最大值取出来,注意这里需要从3开始取,这个function输出值的前3位不是我们的数据
filterData1:=SmoothedFunction[3:|SmoothedFunction|-1]
*取最大值
tuple_max(filterData1,filterDataMax)

原图
在这里插入图片描述
截图
在这里插入图片描述
输出结果
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!