%I've been working on Image processing for quite a long time.
%Here is one of the codes on MATLAB which is to make the images more smooth.
%In mathematic way to express the codes, they are just some kinds of low pass filters.
%Oh! Welcome!
%By WUST. Automation. WK.
%Now codes Begin.
clc;
close all;clear all;
I=imread('image.gif');
orgImage=I;
figure(1); imshow(orgImage);title('原始图像');
fftI1=fft2(orgImage);
sfftI1=fftshift(fftI1);
RR1=real(sfftI1);
II1=imag(sfftI1);
A1=sqrt(RR1.^2+II1.^2);
a1=(A1-min(min(A1)))/(max(max(A1))-min(min(A1)))*225;
figure(2); imshow(a1);
PQ=paddedsize(size(I));
D0=0.06*PQ(2);
H_ideal=lpfilter('ideal',PQ(1),PQ(2),D0);
g_ideal=dftfilt(double(I),H_ideal);
g_ideal=gscale(g_ideal);
H_btw=lpfilter('btw',PQ(1),PQ(2),D0);
g_btw=dftfilt(I,H_btw);
g_btw=gscale(g_btw);
H_gaussian=lpfilter('gaussian',PQ(1),PQ(2),D0);
g_gaussian=dftfilt(I,H_gaussian);
g_gaussian=gscale(g_gaussian);
figure(3);imshow(g_ideal);title('Ideal Digital Filter');
figure(4);imshow(g_gaussian);title('Gauss Digital Filter');
figure(5);imshow(g_btw);title('Butterworth Digital Filter');
fftI1=fft2(g_gaussian);
sfftI1=fftshift(fftI1);
RR1=real(sfftI1);
II1=imag(sfftI1);
A1=sqrt(RR1.^2+II1.^2);
a1=(A1-min(min(A1)))/(max(max(A1))-min(min(A1)))*225; %归一化
figure(6); imshow(a1);
fftI2=ifftshift(sfftI1);
image=ifft2(fftI2)/256;
%figure(7); imshow(image);
理想低通滤波器有着非常明显的振铃效应,导致图像质量恢复得并不高。