I=imread('img_orignal.tif')
figure
subplot(2,2,1)imshow(I)title('
原图像
')
[m,n]=size(I)F=fftshift(fft2(I))
k=0.005
for u=1:m
for v=1:n
H(u,v)=exp((-k)*(((u-m/2)^2+(v-n/2)^2)^(5/6)))
end
end
G=F.*H
I0=real(ifft2(fftshift(G)))
I1=imnoise(uint8(I0),'gaussian',0,0.001)
subplot(2,2,2)imshow(uint8(I1))title('模糊退化且添加高斯噪声的图像')
F0=fftshift(fft2(I1))
K=0.1
for u=1:m
for v=1:n
H(u,v)=exp(-k*(((u-m/2)^2+(v-n/2)^2)^(5/6)))
H0(u,v)=(abs(H(u,v)))^2
H1(u,v)=H0(u,v)/(H(u,v)*(H0(u,v)+K))
end
end
F2=H1.*F0
I2=ifft2(fftshift(F2))
subplot(2,2,3)imshow(uint8(I2))title('维纳滤波复原图')
PSF=
fspecial('motion',len,ang)
%建立扩散子,其中len是模糊长度,ang是模糊角度
img2=deconvlucy(img,PSF,n)
%用lucy-richardson方法复原图像,其中img是运动模糊图像,PSF是扩散子,n是迭代次数,img2是复原图像
h=imread('C:\Users\CRD\Desktop\robot\Images\lena.tif')c=mat2gray(h)
figure,imshow(c),title('原始图象')%显示原始图象
g=imnoise(c,'gaussian',0,0.01) %加入高斯噪声
figure,imshow(g),title('加入高斯噪声之后的图象') %显示加入高斯噪声之后的图象n3=input('请输入高斯滤波器的均值\n')
k=input('请输入高斯滤波器的方差\n')
A2=fspecial('gaussian',k,n3) %生成高斯序列
Y5=filter2(A2,g)/255 %用生成的高斯序列进行滤波
figure,imshow(Y5),title('用Matlab函数进行高斯滤波之后的结果') %显示滤波后的图象
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)