少有人走的路

勇哥的工业自动化技术网站

无纺布折痕检测(3)· 基于灰度投影的折痕检测

- 算法思路 -

(1)构造滤波器与原图卷积增强图像(2)灰度投影,构建垂直灰度投影函数,并与平滑后的函数进行 差分运算,超过一定阈值即为缺陷所在位置的列坐标(3)计算缺陷区域并显示

使用第一篇构造的滤波器与图像卷积运算,突出图像竖直方向的折痕,如下图。

image.png

使用gray_projections算子,得到图像的水平灰度投影HorProjection以及垂直灰度投影VertProjection

HorProjection:从上到下,依次计算图像水平方向上,所有点灰度值的平均值。

VertProjection:从左到右,依次计算图像垂直方向上,所有点灰度值的平均值。

右键控制变量VertProjection,点击“像函数一样绘图”

image.png

如下图所示,因为折痕所在部分的投影灰度值会与其他部分产生突变,所以,红圈部分即为折痕垂直投影灰度。

image.png

平滑垂直灰度投影函数后,显示垂直投影曲线与平滑曲线,如下图所示,通过将两者曲线差分,超过一定阈值,即为缺陷的灰度投影值。

image.png

在垂直方向膨胀运算,计算得到折痕所在区域

image.png

完整代码:

dev_update_off ()
read_image (Image1030179715f15e264af3b, 'C:/Users/SWD-AR02/Desktop/10_3017_9715f15e264af3b.png')

*------(1)构造滤波器与原图卷积增强图像
*构造滤波器
filter :=[5,5,5,-1,-5,1,5,1,-1,-5,1,5,1,-1,-5,1,5,1,-1,-5,1,5,1,-1,-5,1,5,1]
*图像卷积
convol_image (Image1030179715f15e264af3b, ImageResult, filter, 'mirrored')

*------(2)灰度投影,构建垂直灰度投影函数,并与平滑后的函数进行差分运算,超过一定阈值即为缺陷所在位置的列坐标
*设置差分阈值
ThresholdValue :=15
*灰度投影
gray_projections (ImageResult, ImageResult, 'simple', HorProjection, VertProjection)
*创建函数
create_funct_1d_array(VertProjection,Function)
*平滑函数
smooth_funct_1d_mean(Function, 12, 3, SmoothedFunction)
*离散平滑函数
funct_1d_to_pairs (SmoothedFunction, XValues, YValues)

*垂直灰度投影值与平滑后灰度值差分运算
sub:=(VertProjection-YValues)
*使用符号函数,计算得到缺陷Y坐标
flawYValues:=find(sgn(sub-ThresholdValue),1)

*------(3)计算缺陷区域
*计算缺陷所在区域
if(flawYValues[0]#-1)
    *生成图像中心位置行坐标
    tuple_gen_const(|flawYValues|, 107, Newtuple)
    *以图像中心所在位置为行坐标,缺陷位置为列坐标,生成区域点
    gen_region_points(Region, Newtuple, flawYValues)
    *在列方向膨胀操作,得出包含缺陷的区域
    dilation_rectangle1(Region, RegionDilation, 5, 300)        
endif
*与原图求交集,得出缺陷所在区域
intersection(RegionDilation,Image1030179715f15e264af3b,RegionIntersection)

*结果显示
dev_set_draw ('margin')
dev_display (Image1030179715f15e264af3b)
dev_display (RegionIntersection)


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864