目录
1. 频谱噪声分析
在进行图像复原之前,首先对各个图像做傅里叶变换在频谱中观察分布情况,由此判断噪声或模糊类型。
i1=imread('1.png');
i2=imread('2.jpg');
i3=imread('3.jpg');
i4=imread('statBlur.jpg');
o1=fftshift(fft2(rgb2gray(i1)));o2=fftshift(fft2(rgb2gray(i2)));
o3=fftshift(fft2(rgb2gray(i3)));o4=fftshift(fft2(rgb2gray(i4)));
figure,subplot(221),imshow(i1),subplot(222),imshow(o1),subplot(223),imshow(i2),...?????
subplot(224),imshow(o2);
figure,subplot(221),imshow(i3),subplot(222),imshow(o3),subplot(223),imshow(i4),...?????
subplot(224),imshow(o4);
2. 四幅图像分别处理
首先分析佛像图像是否具有噪声,在图像中较为平坦均匀出选取矩形,做直方图处理,观察直方图的分布来确
定是否含有噪声以及噪声的类型。
im=imread('statBlur.jpg');[m,n,h]=size(im);
f11=ones(190,162,3);f22=ones(130,130,3);f33=ones(100,100,3);f44=ones(70,70,3);
for i=1:190
for j=1:162
for k=1:3
f11(i,j,k)=im(i,j,k);
end
end
end
for i=1:130
for j=501:630
for k=1:3
f22(i,j-500,k)=im(i,j,k);
end
end
end
for i=721:870
for j=11:170
for k=1:3
f33(i-720,j-10,k)=im(i,j,k);
end
end
end
for i=761:830
for j=561:630
for k=1:3
f44(i-760,j-560,k)=im(i,j,k);
end
end
end
figure,subplot(221),hist(f11,100),subplot(222),hist(f22,100),subplot(223),...?
hist(f33,100),subplot(224),hist(f44,100);
3.大气湍流处理
函数代码如下:
function output=daqituan( image ,k)
k=0.00011
%函数daqituan?对输入的图像进行大气湍流处理?
%参数image????输入的待处理图像?
%参数k????????大气湍流模型常数
i=fft2(double(image));
G=fftshift(i);
[m,n,h]=size(i);
H=zeros(m,n);
for i=1:m
for j=1:n
if sqrt((i-m/2)^2+(j-n/2)^2)<100
H(i,j)=exp(-k*(i^2+j^2)^(5/6));
end
end
end
for i=1:3
out
(:,:,i)=G(:,:,i).*H;
end
out=real(ifft2(ifftshift(out)));
figure,subplot(121),imshow(image),title('原始图像'),subplot(122),...?????
imshow(out,[]),title('大气湍流复原图像');
end