halcon高斯滤波
简介:高斯滤波利用的滤波器不是简单地求均值或者排序,而是调用一个二维离散的高斯函数。
高斯滤波适用于去除高斯噪声。
高斯滤波优点:可以消除高斯噪声
⑦加载图片⑧获取Image图片的宽高⑨打开图片
使用高斯滤波步骤:
生成滤波器--->频域的转换--->卷积运算--->逆转换过程
第一步生成高斯滤波器
gen_gauss_filter (ImageGauss, 10, 10, 0, 'n', 'rft', Width, Height)
参数1 生成的高斯滤波器
参数2 高斯分布在x轴的标准差 典型值100
参数3 高斯分布在y轴的标准差 典型值100
注:(如果参数2 参数3 值较大的时候会产生更宽的滤波效果,用于更强烈的平滑图像)
参数4 高斯滤波器旋转角度 0指的不旋转(建议值:0.0、0.523599、0.785398、1.047198、1.570796、2.094395、2.356194、2.617994、3.141593)
参数5 none不设置 是否对滤波器进行放大或者缩小
参数6 滤波器的类型 'dc_center'直流分量位置在中心'dc_edge' 默认值:直流分量位置在边缘\ 'rft' 生成一个空域的图片 形状是仿射矩形
参数7,8 写成图形的宽度和高度
效果:
频域图片:频域图像是通过傅里叶变换(FFT) 将空域图像转成频率控件进行表示
空域图片:日常看到的图像矩阵,每个像素点描述是亮度和颜色值
第二步 转成频率图像
rft_generic(Image, ImageFFT, 'to_freq', 'none', 'complex', Width)
参数1 要转换的图片
参数2 转换之后的图片
参数3 to_freq从空域图像转成频域图像,from_freq从频域转成空域
参数4 标准化因子 none 直接输出结果
参数5 生成图像的格式类型:byte,int1,rea1(实数部分)complex' (实数部分和虚数部分保留)
参数6 运行宽度 写成图像的宽度
效果:
第三步 在频域控件进行卷积运算就是高斯滤波器
convol_fft(ImageFFT, ImageGauss, ImageConvol)
参数1 频域图像
参数2 高斯滤波器
参数3 转换之后的图像
第四步 进行逆转换,把经过滤波之后频域图像转成空域图像
先把图像格式改成byte格式
rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)
结果:
俩个图像进行 相减的运算
sub_image (Image, ImageFFT1, ImageSub, 1, 0)
参数1 被减数图片
参数2 减数图片
参数3 输出图像
参数4 矫正因子:1直接输出,0.5将差值缩小一半,2增强差值
参数5 矫正值: 矫正因子*灰度*矫正直
结果:
对象进行缩放
zoom_image_factor (ImageSub, ImageZoomed, 0.5, 0.5, 'constant')
参数3、4 缩放的比例 如果是0.5 缩小一半'constant' 缩放模式(速度快,可能产生锯齿)
结果:
绘制高斯线
lines_gauss (ImageZoomed, Lines, 1.5, 3, 8, 'light', 'true', 'bar-shaped', 'true')
参数1 输入图像
参数2 输出轮廓
参数3 高斯滤波的标准差 控制平滑,0.7——20之间,默认值是1.5,值越大检查线越粗
参数4 阈值的上限 0-20 默认值是3 弱边缘阈值 低于此值将会被忽略
参数5 阈值下限 0-35 默认值为8 强边缘阈值,高于此值确定为强边缘
参数6 提取线为亮线还是暗线
参数7 是否提取宽度信息
参数8 提取线的类型 'bar_shaped' 条形形状 'parabolic' 抛物线
参数9 是否在无法添加交汇点地方添加交汇点
结果: