讲一下常用的高通滤波器和低通滤波器
低通滤波器:代表低频通过的滤波器,就是中间的低频通过,边缘的高频不通过。
正常表现形式就是如下:
中间为白色通过区域,背景为黑色不通过区域
反傅里叶变换后:边缘,菱角就不清晰了,类似模糊了一样
高通滤波器:代表高频通过的滤波器,就是中间的低频不通过,四周的高频通过。
正常表现形式就是如下:
中间为黑色通过区域,背景为白色不通过区域
反傅里叶变换后:边缘出来
带通滤波器:
类似圆环,将高通和低通部分都不保留,中间的灰度差变化不明显部分进行通过。
原图:
频域图:
能稍微的看出第一和第四象限复杂一点,是因为帽子的戴法。导致顺时针45°方向的亮度变化更加复杂一些,反映在频谱图上就更复杂一些。
如果原图做Y轴对称,能够看到频谱图就是顺时针135°方向上更加复杂了。
halcon上的高通滤波器如下
*生成高通滤波,参数0.2是中间圆的直径大小。
*越大说明低频挡的越多,说明转换后的原图,就只有最最明显的灰度差的区域才能保留下来。
*简单描述:值越大,说明保留的细节越少,值越小,说明保留的细节越多
gen_highpass (ImageHighpass, 0.2, ‘none’, ‘dc_center’, Width, Height)
参数为0.1时:
中间阻挡的低通比较少。
经过滤波器处理后的频谱图像:
经过处理,再变换为空间域的图像如下:
参数为0.2时:
经过滤波器处理后的频谱图像:
经过处理,再变换为空间域的图像如下:
参数为0.3时:
经过滤波器处理后的频谱图像:
经过处理,再变换为空间域的图像如下:
总结如下:
高通滤波器:
*简单描述:值越大,说明保留的细节越少,值越小,说明保留的细节越多
halcon上的低通滤波器如下:
*生成低通滤波器。
*值越小,说明中间越小,保留的就越少,那么剩余的痕迹就是模糊的。
*简单描述:值越小,越模糊,越大,越清晰
- gen_lowpass (ImageLowpass, 0.2, ‘none’, ‘dc_center’,Width, Height)
参数为0.1时:
中间阻挡的低通比较少。
经过滤波器处理后的频谱图像:
经过处理,再变换为空间域的图像如下:
参数为0.2时:
经过滤波器处理后的频谱图像:
经过处理,再变换为空间域的图像如下:
参数为0.3时:
经过滤波器处理后的频谱图像:
经过处理,再变换为空间域的图像如下:总结如下:
低通滤波器:
*简单描述:值越小,越模糊,越大,越清晰
代码如下:
read_image (Image, ‘D:/BaiduNetdiskDownload/12 项目所用图片/10.png’)
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
dev_display (Image)
rgb1_to_gray (Image, GrayImage)
*空间域变换到频域
fft_generic (GrayImage, ImageFFT, ‘to_freq’, -1, ‘sqrt’, ‘dc_center’, ‘complex’)
*生成高通滤波,参数0.2是中间圆的直径大小。
*越大说明低频挡的越多,说明转换后的原图,就只有最最明显的灰度差的区域才能保留下来。
*简单描述:值越大,说明保留的细节越少,值越小,说明保留的细节越多
gen_highpass (ImageHighpass, 0.1, ‘none’, ‘dc_center’, Width, Height)
*生成低通滤波器。
*值越小,说明中间越小,保留的就越少,那么剩余的痕迹就是模糊的。
*简单描述:值越小,越模糊,越大,越清晰
*gen_lowpass (ImageLowpass, 0.1, ‘none’, ‘dc_center’,Width, Height)
*做对应的滤波处理
convol_fft (ImageFFT, ImageHighpass, ImageConvol)
*变换成空间域
fft_generic (ImageConvol, ImageFFT1, ‘from_freq’, 1, ‘sqrt’, ‘dc_center’, ‘complex’)