clear
close all
clc
I=imread('Fig5.jpg');
figure, imshow(I);
%实现中心平移
%f(x,y)*(-1)^(x+y)
%TODO:
%A(i,j) = A(i,j) * power(-1, i+j);
[m, n] = size(I);
for i=1:m
for j=1:n
I(i,j) = I(i,j) * power(-1, i+j);
end
end
%将空间域图像转换到频率域
%二维离散傅里叶变换,并显示频谱图像
%TODO:
A = fft2(I);
figure,imshow(log(abs(A)),[]);
% 实现低通滤波器H
%TODO:
% D0=?
% (floor(m/2),floor(n/2))
% D: (y,x)->(floor(m/2),floor(n/2))
H = zeros(m,n);
D0=25;
for i=1:m
for j=1:n
D = (i-m/2).^2+(j-n/2).^2;
D = sqrt(D);
if(D<=D0)
H(i,j) = 1;
end
end
end
%频率域图像平滑处理
%TODO:
A = A.*H;
%将处理后的图像在空间域进行显示
A = ifft2(A);
for i=1:m
for j=1:n
A(i,j) = A(i,j) * power(-1, i+j);
end
end
%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数
figure,imshow(uint8(real(A)));