实验5 图像频域增强.docx
- 文档编号:99154
- 上传时间:2022-10-03
- 格式:DOCX
- 页数:9
- 大小:361.91KB
实验5 图像频域增强.docx
《实验5 图像频域增强.docx》由会员分享,可在线阅读,更多相关《实验5 图像频域增强.docx(9页珍藏版)》请在冰豆网上搜索。
实验5图像频域增强
一、实验目的
通过本实验使学生掌握使用MATLAB的二维傅里叶变换进行频域增强的方法。
二、实验原理
本实验是基于数字图像处理课程中的图像频域增强理论来设计的。
本实验的准备知识:
第四章频域图像增强中的一维傅里叶变换和二维傅里叶变换,频域图像增强的步骤,频域滤波器。
根据教材285页到320页的内容,开展本实验。
可能用到的函数:
1、延拓函数padarray
例:
A=[1,2;3,4];
B=padarray(A,[2,3],’post’);
则结果为
B=
1
2
0
0
0
3
4
0
0
0
0
0
0
0
0
0
0
0
0
0
使用该函数实现图像的0延拓。
Padarray还有其它用法,请用help查询。
2、低通滤波器生成函数
首先编写dftuv函数,如下
function[U,V]=dftuv(M,N)
%DFTUVComputesmeshgridfrequencymatrices.
%[U,V]=DFTUV(M,N]computesmeshgridfrequencymatricesUandV.UandVareusefulforcomputingfrequency-domainfilterfunctionsthat
canbeusedwithDFTFILT.UandVarebothM-by-N.
%Setuprangeofvariables.u=0:
(M-1);
v=0:
(N-1);
%Computetheindicesforuseinmeshgrid.idx=find(u>M/2);
u(idx)=u(idx)-M;idy=find(v>N/2);v(idy)=v(idy)-N;
%Computethemeshgridarrays.[V,U]=meshgrid(v,u);
然后编写低通滤波器函数
function[H,D]=lpfilter(type,M,N,D0,n)
%LPFILTERcomputersfrequencydomainlowpassfilters.
% H=lpfilter(TYPE,M,N,D0,n)createsthetransferfunctionofalowpass
9
filter,H,ofthespecifiedTYPEandsize(M-by-N).Toviewthefilterasanimageormeshplot,itshouldbecenteredusingH=fftshift(H).
%validvaluesforTYPE,D0,andnare:
% 'ideal' IdeallowpassfilterwithcutofffrequencyD0.nneednotbesupplied.D0mustbepositive.
% 'btw' Butterworthlowpassfilterofordern,andcutoffD0.Thedefaultvaluefornis1.D0mustbepositive.
% 'gaussian'Gaussianlowpassfilterwithcutoff(standarddeviation)D0.
nneednotbesupplied.D0mustbepositive.
%Usefunctiondftuvtosetupthemeshgridarraysneededforcomputingtherequireddistances.
[U,V]=dftuv(M,N); %
D=sqrt(U.^2+V.^2); %ComputethedistancesD(U,V)
%Beginfiltercomputations.switchtype
case'ideal'
H=double(D<=D0);case'btw'
ifnargin==4n=1;
end
endH=1./(1+(D./D0).^(2*n));
case'gaussian'
H=exp(-(D.^2)./(2*(D0^2)));
otherwise
error('Unknownfiltertype')
通过调用函数lpfilter可生成相应的滤波器掩膜矩阵。
参考该函数可相应的生成高通滤波器函数。
3、频域滤波
F=fft2(f,size(H,1),size(H,2));%对延拓的f计算FFT。
注意,这里隐含着对f的延拓。
G=real(ifft2(H.*F));%滤波
Gf=G(p> 裁剪后的图像
三、实验内容
(一)图像频域增强的步骤
参考教材286页的Figure4.36,重复该图像中的步骤,并将相应的结果显示出来。
(二)频域低通滤波
产生实验四中的白条图像。
设计不同截止频率的理想低通滤波器、Butterworth低通滤波器,对其进行频域增强。
观察频域滤波效果,并解释之。
设计不同截止频率的理想低通滤波器、Butterworth低通滤波器,对含高斯噪声的lena
图像进行频域增强。
观察频域滤波效果,并解释之。
(三)频域高通滤波
设计不同截止频率的理想高通滤波器、Butterworth高通滤波器,对上述白条图像进行频域增强。
观察频域滤波效果,并解释之。
设计不同截止频率的理想高通滤波器、Butterworth高通滤波器,对含高斯噪声的lena
图像进行频域增强。
观察频域滤波效果,并解释之。
四、实验步骤
(二)频域低通滤波理想低通滤波器
1.D0=5
程序:
A=zeros(64,64);
A(32-20:
32+20,32-8:
32+8)=255;
subplot(1,2,1)imshow(A);s=fftshift(fft2(A));[M,N]=size(s);
n1=floor(M/2); %对M/2进行取整
n2=floor(N/2);d0=5;
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离
h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数
s(i,j)=h*s(i,j); %GLPF滤波后的频域表示
end
end
s=ifftshift(s);s=uint8(real(ifft2(s)));
subplot(1,2,2); %创建图形图像对象
imshow(s);
运行结果:
2.D0=50
程序:
A=zeros(64,64);
A(32-20:
32+20,32-8:
32+8)=255;
subplot(1,2,1)imshow(A);s=fftshift(fft2(A));[M,N]=size(s);
n1=floor(M/2); %对M/2进行取整
n2=floor(N/2);d0=50;
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离
h=1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数
s(i,j)=h*s(i,j); %GLPF滤波后的频域表示
end
end
s=ifftshift(s);s=uint8(real(ifft2(s)));
subplot(1,2,2); %创建图形图像对象
imshow(s);
运行结果:
Butterworth低通滤波器
1.程序
A=zeros(64,64);
A(32-20:
32+20,32-8:
32+8)=255;
subplot(1,2,1)imshow(A);s=fftshift(fft2(A));[M,N]=size(s);
n1=floor(M/2); %对M/2进行取整
n2=floor(N/2);d0=5;
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离h=1/(1+0.414*(d/d0)^(2*n));
end
end
s(i,j)=h*s(i,j); %GLPF滤波后的频域表示
s=ifftshift(s);s=uint8(real(ifft2(s)));
subplot(1,2,2); %创建图形图像对象
imshow(s);
运行结果:
含高斯噪声的lena图像进行频域增强
clearall;A=imread('D:
\pic\lena.bmp')subplot(2,3,1),imshow(A,[]);
title('原图') %把图像显示出来
B=imnoise(A,'gauss',0.02)
subplot(2,3,3),imshow(B,[]); %添加高斯噪声后的图像
title('添加高斯噪声后的图像')
f=double(B); %图像存储类型转换
g=fft2(f); %傅立叶变换
g=fftshift(g); %转换数据矩阵
[N1,N2]=size(g); %测量图像尺寸参数
n=2;d0=50;
n1=fix(N1/2);n2=fix(N2/2);fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^+(j-n2)^2)c=double(d<=d0); %result(i,j)=c*g(i,j);
end
end
resul=ifftshift(result); %傅立叶逆变换
X2=ifft2(result);X3=uint8(real(X2));subplot(2,3,5)
imshow(X3) %显示频域增强后的图像
title('D0=50,低通滤波器')
运行结果:
原图 添加高斯噪声后的图像
D0=20,butterworth 滤波器
D0=20,低通滤波器
(三)频域高通滤波理想高通滤波器A=zeros(64,64);
A(32-20:
32+20,32-8:
32+8)=255;
subplot(1,2,1);imshow(A);
s=fftshift(fft2(A));[M,N]=size(s);
n1=floor(M/2);
%对M/2进行取整
D0=50,低通滤波器
D0=50,butterwort滤h波器
n2=floor(N/2);d0=5;
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2); %点(i,j)到傅立叶变换中心的距离
h=1-(1*exp(-1/2*(d^2/d0^2)));
s(i,j)=h*s(i,j); %GLPF滤波后的频域表示
end
end
s=ifftshift(s);
s=uint8(real(ifft2(s)));
subpl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验5 图像频域增强 实验 图像 增强