无纺布折痕检测(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)


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

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

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864