Halcon 灰度投影及其应用

算子介绍:
一、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)

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

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘·月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值