Halcon--污染区域检测

本文介绍了一种基于Halcon的污染区域检测方法,通过傅里叶变换滤波和高斯函数差分来增强缺陷区域对比度,结合形态学操作识别并提取污染区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

基于Halcon的污染区域检测


一、思路

采用傅里叶变换将图像转换至频域上进行处理,在经过傅里叶变换的图像上使用正弦形状的带通滤波器,可以有效降低周期纹理的干扰,突出有缺陷的区域。而将两种不同参数的高斯函数相减,则可以有效提取出傅里叶图像中的特征区域。纹理和缺陷的灰度差异被“放大”,所以灰度阈值结合形状的面积特征将二者分隔开来。

二、实现

原图
在这里插入图片描述

三、源码

*关闭当前窗口
dev_close_window ()
read_image (Image, 'D:/USER/Desktop/design/dataset/cloth.jpg')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_set_line_width (4)
*创建两个高斯滤波器
gen_gauss_filter (GaussFilter1, 30.0, 30.0, 0.0, 'none', 'rft', Width, Height) 
gen_gauss_filter (GaussFilter2,3.0, 3.0, 0.0, 'none', 'rft', Width, Height) 
sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0) 
rgb1_to_gray (Image, ImageGray)
*对图像进行傅里叶变换,滤波以及还原
rft_generic (ImageGray, ImageFFT, 'to_freq', 'none', 'complex', Width)
convol_fft (ImageFFT, Filter, ImageConvol)
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
scale_image_range (ImageFiltered, ImageScaled, 0, 255) 
*使用形态学方法提取污染区域
threshold (ImageScaled, Region, 0, 1) 
erosion_circle (Region, RegionErosion, 11.5)
connection (RegionErosion, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
dilation_circle (SelectedRegions, RegionDirty, 9.5)
*显示提取结果
dev_display (Image)
dev_set_draw ('margin')
dev_display (RegionDirty)

总结

希望对你有所帮助,如果有所疑惑可以留言交流。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值