Halcon 缺陷检测 金属拉丝表面缺陷检测(乘法增强、傅里叶变换与卷积、纹理过滤、动态阈值)

Halcon 缺陷检测 拉丝表面缺陷检测(乘法增强、傅里叶变换与卷积、纹理过滤、动态阈值)

Halcon 缺陷检测 金属拉丝表面缺陷检测(乘法增强、傅里叶变换与卷积、纹理过滤、动态阈值)_第1张图片
文件下载
链接:https://pan.baidu.com/s/1HNl4vy0jEaFx5OUuBDAMXw
提取码:z9en

具体halcon代码


* 1.读取图片并显示 ****************************
dev_close_window ()
read_image (Image, 'img.png')
get_image_size (Image, Width, Height)
dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowHandle)

dev_display (Image)

* 2.图片对比度增强 ****************************
* 转换为灰度图片
rgb1_to_gray (Image, GrayImage)
* 图片取反
invert_image (GrayImage, ImageInvert)
* 图片增强(乘法)
mult_image (ImageInvert, ImageInvert, ImageResult, 0.01, 0)

* 3.傅里叶变换 ****************************
* 生成正弦卷积 滤波图片
gen_sin_bandpass (ImageBandpass, 0.6, 'none', 'rft', Width, Height)

* 傅里叶 图片转到 频域
rft_generic (ImageResult, ImageFFT, 'to_freq', 'none', 'complex', Width)
* 卷积处理
convol_fft (ImageFFT, ImageBandpass, ImageConvol)
* 傅里叶 频域转到图片 
rft_generic (ImageConvol, ImageBase, 'from_freq', 'n', 'byte', Width)

* 4.纹理过滤与动态阈值 ****************************
* 纹理过滤器
texture_laws (ImageBase, ImageTexture, 'el', 3, 5)
* 动态阈值
mean_image (ImageTexture, ImageMean, 5, 10)
dyn_threshold (ImageTexture, ImageMean, RegionDynThresh, 10, 'light')
* 连通域分析
connection (RegionDynThresh, ConnectedRegions)
* 区域筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 44, 487)

* 链接缺陷区域
union1 (SelectedRegions, RegionUnion)
closing_circle (RegionUnion, RegionClosing, 6)

* 区域骨骼化处理
skeleton (RegionClosing, Skeleton)

* 5.结果显示 ****************************
dev_clear_window ()
dev_display(Image)
dev_set_color ('red')
dev_display(Skeleton)
stop()

处理结果

Halcon 缺陷检测 金属拉丝表面缺陷检测(乘法增强、傅里叶变换与卷积、纹理过滤、动态阈值)_第2张图片

你可能感兴趣的:(Halcon,halcon)