傅里叶变换滤波器

时间:2013-10-27 18:12:10

标签: fft matlab

在下面的图像中,我计算了图像的傅里叶变换。现在我想在DO = 50的同一图像上应用理想的高通滤波器。图像中提到了傅里叶变换的代码。enter image description here

1 个答案:

答案 0 :(得分:1)

我不知道理想的高通滤波器是什么。所以,我认为HPF是一个圆形滤波器。 这是我的代码。

lena = im2double(rgb2gray(imread('lena.bmp')));
D0 = 50;
lpf = zeros(size(lena));
base_x = linspace(-size(lena,1)/2,size(lena,1)/2,size(lena,1));
base_y = linspace(-size(lena,2)/2,size(lena,2)/2,size(lena,2));
[x,y] = meshgrid(base_x, base_y);
lpf(x.^2+y.^2<D0^2) = 1;
hpf = 1-lpf;

LENA = fftshift(fft2(lena));
RESULT = LENA.*hpf;
result = abs(ifft2(RESULT));
figure, imshow(result,[])

首先,我使用1-LPF制作HPF。 (LPF的形状是圆形。) 并且通过HPF以像素方式乘以图像。 最后,ifft IMAGE。

运行上述代码时,您可以获得此结果。

original image 原始图像 HPF image HPF图片 result image结果图片