global I;
J=rgb2gray(I);
H=imnoise(J,'gaussian',0.01);
axes(handles.axes1);
imshow(H);
title('含有噪声的原图像');
%----------------------------------------
f=fft2(H);
g=fftshift(f);
[M,N]=size(f);
n=2; %二阶巴特沃斯(Butterworth)低通滤波器
d0=50;
n1=fix(M/2);n2=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d0/d)^(2*n));
g(i,j)=h*g(i,j);
W1=fsamp2(h);
t1(i,j)=W1;
end
end
g=ifftshift(g);
g=uint8(real(ifft2(g)));
axes(handles.axes2);
imshow(g);
title('二阶Butterworth高通滤波图像');
F=fft2(g);
K=fftshift(F);
S=log(1+abs(K));
axes(handles.axes4);
imshow(S,[]);
title('二阶Butterworth高通滤波图像的幅度谱');
figure;
mesh(t1);
title('二阶Butterworth高通滤波器透视图');
f=fft2(H);
g=fftshift(f);
[M,N]=size(f);
n=3; %三阶巴特沃斯(Butterworth)高通滤波器
d0=50;
n1=floor(M/2);n2=floor(N/2);
for i=1:M
for j=1:N
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+0.414*(d0/d)^(2*n));
g(i,j)=h*g(i,j);
W1=fsamp2(h);
t1(i,j)=W1;
end
end
g=ifftshift(g);
g=uint8(real(ifft2(g)));
axes(handles.axes3);
imshow(g);
title('三阶Butterworth高通滤波图像');
F=fft2(g);
K=fftshift(F);
S=log(1+abs(K));
axes(handles.axes5);
imshow(S,[]);
title('三阶Butterworth高通滤波图像的幅度谱');
figure;
mesh(t1);
title('三阶Butterworth高通滤波器透视图');