频域增强Word下载.docx
《频域增强Word下载.docx》由会员分享,可在线阅读,更多相关《频域增强Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
%分别设置4种不同的滤波半径
D1=15;
D2=30;
D3=50;
D4=80;
%傅里叶变换并中心化
Fuv=fftshift(fft2(J));
[M,N]=size(Fuv)
%确定傅里叶变换的原点
xo=floor(M/2);
yo=floor(N/2);
%分别求4个不同滤波半径的ILPF
fori=1:
M
forj=1:
N
D=sqrt((i-xo)^2+(j-yo)^2);
if(D>
=D1)
h1(i,j)=0;
else
h1(i,j)=1;
end
=D2)
h2(i,j)=0;
h2(i,j)=1;
=D3)
h3(i,j)=0;
h3(i,j)=1;
=D4)
h4(i,j)=0;
h4(i,j)=1;
end
end
end
%滤波矩阵点乘
Guv1=h1.*Fuv;
Guv2=h2.*Fuv;
Guv3=h3.*Fuv;
Guv4=h4.*Fuv;
%傅里叶逆变换
g1=ifftshift(Guv1);
g1=uint8(real(ifft2(g1)));
g2=ifftshift(Guv2);
g2=uint8(real(ifft2(g2)));
g3=ifftshift(Guv3);
g3=uint8(real(ifft2(g3)));
g4=ifftshift(Guv4);
g4=uint8(real(ifft2(g4)));
%分别显示各个图像
subplot(2,3,1);
imshow(I);
title('
原始图像'
subplot(2,3,2);
imshow(J,[]);
加入高斯噪声图像'
subplot(2,3,3);
imshow(g1);
ILPFD0=15'
subplot(2,3,4);
imshow(g2);
ILPFD0=30'
subplot(2,3,5);
imshow(g3);
ILPFD0=50'
subplot(2,3,6);
imshow(g4);
ILPFD0=80'
例2巴特沃斯低通滤波器
n=2;
%滤波器阶数
h1(i,j)=1/(1+(D/D1)^(2*n));
h2(i,j)=1/(1+(D/D2)^(2*n));
h3(i,j)=1/(1+(D/D3)^(2*n));
h4(i,j)=1/(1+(D/D4)^(2*n));
BLPFD0=15'
BLPFD0=30'
BLPFD0=50'
BLPFD0=80'
例3指数低通滤波器
%分别设置3种不同的滤波半径
D1=20;
D2=40;
D3=80;
n1=2;
n2=8%滤波器阶数
%分别求4个不同滤波半径的ELPF
h1(i,j)=exp(-(D/D1)^n1);
h2(i,j)=exp(-(D/D2)^n1);
h3(i,j)=exp(-(D/D3)^n1);
h4(i,j)=exp(-(D/D1)^n2);
h5(i,j)=exp(-(D/D2)^n2);
h6(i,j)=exp(-(D/D3)^n2);
Guv5=h5.*Fuv;
Guv6=h6.*Fuv;
g5=ifftshift(Guv5);
g5=uint8(real(ifft2(g5)));
g6=ifftshift(Guv6);
g6=uint8(real(ifft2(g6)));
2阶ELPFD0=20'
2阶ELPFD0=40'
2阶ELPFD0=80'
8阶ELPFD0=20'
imshow(g5);
8阶ELPFD0=40'
8阶ELPFD0=80'
例4理想高通滤波器
J=double(I);
%分别求3个不同滤波半径的IHPF
subplot(1,3,1);
IHPFD0=15'
subplot(1,3,2);
subplot(1,3,3);
IHPFD0=50'
例2巴特沃斯高通滤波器
n2=4;
ifD==0
h1(i,j)=0;
h5(i,j)=0
h6(i,j)=0
h1(i,j)=1/(1+(D1/D)^(2*n1));
h2(i,j)=1/(1+(D2/D)^(2*n1));
h3(i,j)=1/(1+(D3/D)^(2*n1));
h4(i,j)=1/(1+(D1/D)^(2*n2));
h5(i,j)=1/(1+(D2/D)^(2*n2));
h6(i,j)=1/(1+(D3/D)^(2*n2));
2阶IHPFD0=15'
2阶IHPFD0=30'
2阶IHPFD0=50'
4阶IHPFD0=15'
4阶IHPFD0=30'
imshow(g6);
4阶IHPFD0=50'
例6指数低通滤波器
n2=8;
%分别求3个不同滤波半径的EHPF
h1(i,j)=exp(-(D/D1)^n1);
h2(i,j)=exp(-(D/D2)^n1);
h3(i,j)=exp(-(D/D3)^n1);
h4(i,j)=exp(-(D/D1)^n2);
h5(i,j)=exp(-(D/D2)^n2);
h6(i,j)=exp(-(D/D3)^n2);
2阶EHPFD0=20'
2阶EHPFD0=40'
2阶EHPFD0=80'
4阶EHPFD0=20'
4阶EHPFD0=40'
4阶EHPFD0=80'
例7同态滤波器
subplot(1,2,1);
I=im2double(I);
lni=log(I+0.000001);
%求对数
Fi=fftshift(fft2(lni));
[M,N]=size(Fi);
%确定傅里叶变换的原点
%同态滤波器参数设置
Hh=2;
Hl=0.5;
c=1.5;
D0=80;
%求H(u,v)
D=(i-xo)^2+(j-yo)^2;
h(i,j)=(Hh-Hl)*(1-exp(-c*(D/D0^2)))+Hl;
Gi=h.*Fi;
%滤波矩阵点乘
flno=ifftshift(Gi);
go=real(ifft2(flno));
%傅里叶逆变换
go=exp(go);
gxy=im2uint8(go);
subplot(1,2,2);
imshow(gxy);
同态滤波结果'
figure
(2);
mesh(h);
colormap(jet);
同态滤波器特性曲线'