赞
踩
(1)进一步掌握图像处理工具Matlab,熟悉基于Matlab的图像处理函数。
(2)掌握各种基于正交变换的图像频域增强方法。
(3)掌握图像恢复的基本方法。
1.对一副噪声图像, 进行理想低通滤波、巴特沃斯低通滤波、理想高通滤波、巴特沃斯高通滤波、高通增强
实验对比:叠加不同的噪声(高斯、椒盐)、采用不同的截断频率, 对处理结果进行对比
– 2. 利用fspcial函数,对一副图像模拟不同的退化效果:运动模糊、高斯模糊、均值模糊
– 3. 对模糊图像进行维纳滤波复原
实验对比:对叠加噪声、不叠加噪声的模糊图像分别进行滤波结果对比;
对一副噪声图像进行不同滤波器处理的程序流程:
利用fspcial函数模拟不同退化效果和维纳滤波复原的程序流程:
1. 1
f=imread('rice.png');
f=double(f);
I1=imnoise(f,'gaussian',0.1,0.1); %对图像添加高斯噪声污染
I4=imnoise(f,'salt & pepper'); %对图像添加椒盐噪声污染
F=fftshift(fft2(f));%对图像进行傅立叶变换并将频域中心偏移到中点
d0=20; %截止频率
[m,n]=size(f); %理想低通滤波
h=0;
for u=1:m
for v=1:n
if sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))<=d0
h=1;
else
h=0;
end
FH(u,v)=F(u,v)*h;
end
end
fh=ifft2(FH); %巴特沃斯低通滤波
nb=1;
for u=1:m
for v=1:n
hb=1/(1+(sqrt(2)-1)*(sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))/d0)^(2*nb));
FHB(u,v)=F(u,v)*hb;
end
end
figure
subplot(2,4,1),imshow(uint8(f)); title('原图像');
subplot(2,4,2),imshow(uint8(abs(fh)),[]);title('理想低通滤波')
subplot(2,4,3),imshow(abs(fhb),[]);title('巴特沃斯低通滤波')
1.2
f=imread('rice.png');
f=double(f);
I1=imnoise(f,'gaussian',0.1,0.1); %对图像添加高斯噪声污染
I4=imnoise(f,'salt & pepper'); %对图像添加椒盐噪声污染
F=fftshift(fft2(I1));%对图像进行傅立叶变换并将频域中心偏移到中点
d0=10; %截止频率
[m,n]=size(I1); %理想低通滤波
h=0;
for u=1:m
for v=1:n
if sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))<=d0
h=1;
else
h=0;
end
FH(u,v)=F(u,v)*h;
end
end
fh=ifft2(FH); %巴特沃斯低通滤波
nb=1;
for u=1:m
for v=1:n
hb=1/(1+(sqrt(2)-1)*(sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))/d0)^(2*nb));
FHB(u,v)=F(u,v)*hb;
end
end
figure
subplot(2,4,1),imshow(uint8(f)); title('原图像');
subplot(2,4,2),imshow(I1),title('高斯噪声污染图像');
subplot(2,4,3),imshow(I4),title('椒盐噪声污染图像');
subplot(2,4,4),imshow(uint8(abs(fh)),[]);title('高斯噪声污染后的理想低通滤波')
subplot(2,4,5),imshow(abs(fhb),[]);title('巴特沃斯低通滤波')
1.3
f=imread('rice.png');
f=double(f);
F=fftshift(fft2(f));%对图像进行傅立叶变换并将频域中心偏移到中点
d0=10; %截止频率
[m,n]=size(f); %理想高通滤波
h=0;
for u=1:m
for v=1:n
if sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))<=d0
h=0;
else
h=1;
end
FH(u,v)=F(u,v)*h;
end
end
fh=ifft2(FH); %巴特沃斯高通滤波
nb=1;
for u=1:m
for v=1:n
hb=1/(1+(sqrt(2)-1)*(d0/sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2)))^(2*nb));
FHB(u,v)=F(u,v)*hb;
end
end
fhb=ifft2(FHB);
figure,subplot(1,3,1),imshow(uint8(f)); title('原图像');
subplot(1,3,2),imshow(uint8(abs(fh)),[]);title('理想高通滤波');;
subplot(1,3,3),imshow(abs(fhb),[]);title('巴特沃斯高通滤波')
1.4
f=imread('rice.png');
f=double(f);
I1=imnoise(f,'gaussian',0.1,0.1); %对图像添加高斯噪声污染
I4=imnoise(f,'salt & pepper'); %对图像添加椒盐噪声污染
F=fftshift(fft2(I4));%对图像进行傅立叶变换并将频域中心偏移到中点
d0=10; %截止频率
[m,n]=size(I4); %理想高通滤波
h=0;
for u=1:m
for v=1:n
if sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2))<=d0
h=0;
else
h=1;
end
FH(u,v)=F(u,v)*h;
end
end
fh=ifft2(FH); %巴特沃斯高通滤波
nb=1;
for u=1:m
for v=1:n
hb=1/(1+(sqrt(2)-1)*(d0/sqrt((u-m/2)*(u-m/2)+(v-n/2)*(v-n/2)))^(2*nb));
FHB(u,v)=F(u,v)*hb;
end
end
fhb=ifft2(FHB);
figure
subplot(2,3,1),imshow(uint8(f)); title('原图像');
subplot(2,3,2),imshow(I1),title('高斯噪声污染图像');
subplot(2,3,3),imshow(I4),title('椒盐噪声污染图像');
subplot(2,3,4),imshow(uint8(abs(fh)),[]);title('椒盐噪声污染后的理想高通滤波');
subplot(2,3,5),imshow(abs(fhb),[]);title('椒盐噪声污染的巴特沃斯高通滤波');
2.1
%对图像进行加噪声
I=imread('Lena.bmp');
%I=rgb2gray(I);
PSF=fspecial('motion',31,11);
J=imfilter(I,PSF,'conv');
figure,subplot(2,2,1),imshow(I);title('源图像')
subplot(2,2,2),imshow(J),title('运动模糊图像')
PSF=fspecial('disk',5); J=imfilter(I,PSF,'conv');
subplot(2,2,3),imshow(J),title('均值模糊图像')
PSF=fspecial('gaussian',31,3); J=imfilter(I,PSF,'conv');
subplot(2,2,4),imshow(J),title('高斯模糊图像')
3.1
I=imread('Lena.bmp');
psf=fspecial('motion',31,11);
blurred=imfilter(I,psf,'full');
wnr=deconvwnr(blurred,psf,0.1);
figure,subplot(2,2,1),imshow(I),title('原图像')
subplot(2,2,2),imshow(blurred),title('运动模糊图像')
subplot(2,2,3),imshow(wnr),title('魏纳滤波复原图像')
3.2
I=imread('Lena.bmp');
psf=fspecial('motion',21,11);
blurred=imfilter(I,psf,'full');
noise=0.1*randn(size(blurred)); %生成随机噪声矩阵
bn=imadd(blurred,im2uint8(noise)); %bn为含噪的模糊图像
nsr=sum(noise(:).^2)/sum(im2double(I(:)).^2); %计算信噪比
wnr=deconvwnr(bn,psf,0.1); wnr1=deconvwnr(bn,psf,nsr);
NP=abs(fftn(noise).^2); %计算噪声图像的能量
IP=abs(fftn(im2double(I)).^2); %计算原图像的能量,可以用含噪的模糊图像代替原图像
NCORR=fftshift(real(ifftn(NP))); %计算噪声图像的相关系数
ICORR=fftshift(real(ifftn(IP))); %计算原图像的相关系数
wnr2=deconvwnr(bn,psf,NCORR,ICORR);
figure,subplot(2,3,1),imshow(I),title('原图像')
subplot(2,3,2),imshow(blurred),title('运动模糊图像')
subplot(2,3,3),imshow(bn),title('含噪的运动模糊图像')
subplot(2,3,4),imshow(wnr),title('不考虑噪声复原图像')
subplot(2,3,5),imshow(wnr1),title('已知信噪比复原图像')
subplot(2,3,6),imshow(wnr2),title('已知NCORR与ICORR复原图像')
该实验通过对同一幅噪声图像用不同类型的滤波器,以及在添加高斯和椒盐噪声时应用不同的截断频率,对处理结果进行对比。由于理想滤波器具有无限响应,因此在实际应用中很难实现,故出现了图片黑屏的情况。而巴特沃斯滤波器则可以通过改变截止频率来控制滤波效果。理想低通滤波器可以有效地去除高频噪声,但会使得图像模糊;而巴特沃斯低通滤波器可以平衡噪声抑制和图像清晰度,并且其表现更加平滑。理想高通滤波器可以突出图像中的高频细节,但也会同时增强噪声。巴特沃斯高通滤波器则可以抑制低频信息并增强高频信息。高通增强滤波器可以在尽可能保留高频细节的同时消除低频噪声,但需要找到一个合适的增益因子来平衡两者。
2.利用fspcial函数对一副图像模拟不同的退化效果:运动模糊、高斯模糊、均值模糊的结果分析如下:
该实验通过对同一幅图像应用不同类型的模糊滤波器,模拟了图像的不同退化效果。运动模糊是由于相机或目标物体的移动而导致的模糊,可以通过线性运动模糊滤波器模拟;高斯模糊是由于图像中的像素受到随机噪声的影响而导致的模糊,可以通过高斯滤波器模拟;均值模糊是由于图像中的像素被周围像素的平均值替代而导致的模糊,可以通过均值滤波器模拟。
3.对模糊图像进行维纳滤波复原的结果分析如下:
首先是图像质量。在实验中,我们对模糊图像进行了维纳滤波复原,并将处理后的图像与原始图像进行对比,以评估处理后图像的质量。通常情况下,经过滤波处理的图像应该具有更高的清晰度、更少的噪点和更好的细节,而不受过多失真。
其次是滤波效果。实验中我们对比了对叠加噪声和不叠加噪声的模糊图像进行滤波后的结果。通过对比两种情况下滤波后的图像,我们可以得出对于叠加噪声的模糊图像,维纳滤波能够更好地去除噪声并恢复细节,而对于没有叠加噪声的模糊图像,维纳滤波也能够提高图像质量,但改善效果可能不如对叠加噪声的模糊图像这么显著。
在进行图像处理时,通过不同类型的滤波器,可以达到不同的效果。本实验中,使用了理想低通滤波、巴特沃斯低通滤波、理想高通滤波、巴特沃斯高通滤波和高通增强等方法对一副噪声图像进行处理,并比较了不同截断频率、叠加不同噪声的影响。可以发现,低通滤波可以去除图像中的高频信息,保留较低频的信息,使图像变得平滑。高通滤波则相反,可以增强图像中的高频信息,使图像看起来更加锐利。总之,在图像处理中,选择合适的滤波器和参数非常重要。在实验中还使用了Matlab的fspcial函数,模拟了不同类型的退化效果,包括运动模糊、高斯模糊和均值模糊。通过对这些效果的模拟,可以更好地理解这些模糊效果对图像造成的影响。同时还学习了对模糊图像进行维纳滤波复原的方法。该方法可以有效地去除图像中的噪声和模糊,并提高图像的清晰度和质量。总的来说,本次实验让我更深入地理解了相关知识,同时也体会到了实际应用中的一些技巧和细节。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。