简单理解高通滤波与低通滤波(频域过滤)

我们知道一幅图像包含错综复杂的高频与低频部分,这使我们在处理这些图像时较为困难,如果我们把图像中我们要的频率留下,不想要的频率干掉,这样在处理过程中会简化很多。

高低通滤波原理图:

简单理解高通滤波与低通滤波(频域过滤)_第1张图片

代码演示

演示图(因为黑与白是两个极端,在黑与白的交界处波动最大,在频域中差距也就最大):

简单理解高通滤波与低通滤波(频域过滤)_第2张图片

halcon代码演示:

read_image (Image, 'C:/Users/斌/Desktop/test.png')
rgb1_to_gray (Image, GrayImage)
get_image_size (GrayImage, Width, Height)
*创建一个高通滤波器
gen_highpass (ImageHighpass, 0.2, 'n', 'dc_center', Width, Height)
fft_generic(GrayImage,ImageFFT2,'to_freq',-1,'none','dc_center','complex')
convol_fft(ImageFFT2,ImageHighpass,ImageConvol2)
fft_generic(ImageConvol2,ImageResult1,'from_freq',1,'none','dc_center','byte')
stop ()
*创建一个低通滤波器
gen_lowpass(Lowpass,0.2,'n','dc_center',Width,Height)
fft_generic(GrayImage,ImageFFT2,'to_freq',-1,'none','dc_center','complex')
convol_fft(ImageFFT2,Lowpass,ImageConvol2)
fft_generic(ImageConvol2,ImageResult2,'from_freq',1,'none','dc_center','byte')
stop ()
*低通图对比原灰度图
sub_image (GrayImage, ImageResult2, ImageSub, 1, 128)

高通效果:

简单理解高通滤波与低通滤波(频域过滤)_第3张图片

因为黑与白的交界处波动最为巨大,也就是所谓的高频,因此高通滤波的结果只有这么个边框区域。

低通效果:

简单理解高通滤波与低通滤波(频域过滤)_第4张图片

这个结果体现不出什么,我们拿原图与这个图相减看看:

简单理解高通滤波与低通滤波(频域过滤)_第5张图片

我们知道在一条定件下,原图-低通图=高通图。也就是说低通图阻止了黑与白的交接处,也就是阻止了高频段。

你可能感兴趣的:(halcon)