逆滤波实验报告_低通滤波器实验报告
逆滤波实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“低通滤波器实验报告”。
实验报告
一、实验目的和要求
用逆滤波及其限制病态性的简单改进方法进行散焦模糊图像恢复实验
二、实验原理
1、不考虑加性噪声时,图像的退化可以看成图像信息f(x,y)经过一个退化系统,即:
g(x,y)=H[f(x,y)]=f(x,y)*h(x,y)其频谱可以表示为G(u,v)=F(u,v)H(u,v)
2、当我们对退化系统有先验性的了解时,例如已知
H(u,v)=exp[-c(u2+v2)5/6] 那么我们可以对退化后的图像进行退化过程的逆变换,从而恢复图像。
3、由于实际图片有加性噪声,即:
G(u,v)=F(u,v)H(u,v)+N(u,v)
因此,直接逆变换的结果为
S(u,v)=G(u,v)/H(u,v)+N(u,v)/H(u,v)=F(u,v)+N(u,v)/H(u,v)对于H(u,v)=exp[-c(u2+v2)5/6],当u、v较大时,H(u,v)是一个趋近于零的数,因此会对加性噪声的高频部分产生强烈放大,从而引起显著的病态性。对于这种病态性,最简单的修正方式是对逆变换的函数进行简单的限制。但这种阶跃式的限制会带来明显的振铃现象。
三、实验方法
1、对同一幅图,采用相同的退化模型,调整不同C值,和w0值并比较结果。
2、对同一幅图,采用相同的退化模型,调整不同C值并选取适当的w0值,并比较用逆滤波及其限制病态性的简单改进方法的结果。
四、实验结果及分析
1、采用的退化模型为H(u,v)=exp[-c(u2+v2)5/6],取c=0.0005,对不同w值进行了仿真,结果如下所示。
g(x,y)(w=10)g(x,y)(w=50)g(x,y)(w=100)g(x,y)(w=150)g(x,y)(w=200)
可以看出,当w值太小时,几乎没有效果。随着w值的增大,对中频的放大作用越来越明显。但当w值过大时,图片上可以看到水波状的条纹,同时浅色部分可以看到明显的花纹,病态性显著。
2、采用的退化模型为H(u,v)=exp[-c(u2+v2)5/6],取不同c值,选取合适的w值进行了仿真,结果如下所示。
不进行限制时:
g(x,y)(C=0.0001)g(x,y)(C=0.0003)g(x,y)(C=0.0005)g(x,y)(C=0.0007)g(x,y)(C=0.0009)
可以看到,在不进行限制的情况下,随着C值的增大,对高频部分的放大作用也很快的增大,带来了显著的病态性。但选取的C值过小又打不到图像恢复的效果。
下面是进行了适当的限制后的结果:
f(x,y)F(u,v)g(x,y)1/H(u,v)
其中,为了显示效果,对两幅频谱图进行了一定的缩放。
五、心得体会
1、使用imshow函数时,如果输入数据全是0到1之间的小数,那么matlab会把它当做归一化后的数据,依旧是会扩大256倍再按灰度显示。若输入数据有0到1之间的小数,也有大于1的数,则matlab会将数据二值化,显示为白点和黑点。若输入数据为0到255的整数,则matlab会直接按灰度显示。因此,对于变换后的结果,有时要转换成int8类型的整数才能正确输出。
2、在已知退化模型的情况下,限制病态性的逆滤波可以比较有效地恢复图像,但其主要的放大区由C和w0共同决定,因此参数确定比较麻烦
3、在matlab中,若再频谱上进行变换,最好先用fftshift函数将fft结果变换为低频在中间的格式,这样能极大地方便后面的处理。
六、源代码
clc;clear;clf;
sizeX=240;sizeY=352;
%设行宽、列宽 C=0.0005;
%滤波器参数 w=100;
f = imread('war02.bmp')%读8位灰度图像 for a=1:sizeX
for b=1:sizeY
if(f(a,b)== 0)f(a,b)= 1;
end
end end
F=fftshift(fft2(double(f)));%求频谱
H=zeros(sizeX,sizeY);
%逆变换滤波器传递函数 for a=1:sizeX
for b=1:sizeY
D=C*(((a-sizeX/2)^2+(b-sizeY/2)^2)^(5/6));
%H(a,b)=exp(D);
H(a,b)=(exp(D)-1).*((((a-sizeX/2)^2+(b-sizeY/2)^2))
%限制病态性
end end
G=H.*F;
%频域处理
g=ifft2(fftshift(G));
%fft反变换
figure(1)imshow(f)
%原图 title('f(x,y)');figure(2)imshow(g,[0,255])
%恢复结果 title('g(x,y)');figure(3)imshow(abs(F)/10,[0,255])
%原图频谱,进行了缩放 title('F(u,v)');figure(4)imshow(abs(H)*100,[0,255])%逆变换滤波器频谱,进行了缩放 title('1/H(u,v)');