08第八讲MATLAB频域编程.pptVIP

  • 3
  • 0
  • 约 44页
  • 2017-02-12 发布于重庆
  • 举报
08第八讲MATLAB频域编程

计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * 计算机图形学 * * * 例:function D=dftuv(M, N) %DFTUV计算频率矩形中任意点到中心点的距离矩阵; %M×N为频率矩形的大小,D的大小也为M×N u=0:M-1; v=0:N-1; [V,U]=meshgrid(v,u); D=sqrt((U-floor(M/2)).^2+(V-floor(N/2)).^2); * u,v所组成的 频率矩形原点 * ILPF: H=double(dftuv(M, N)=D0); 例: * BLPF: H=1./(1+(dftuv(M,N)/D0).^(2*n)); 例: * GLPF: H=exp(-((dftuv(M, N)).^2)./(2*(D0^2))); 例: * 如何生成频域高通滤波器? 如何编写一个能够生成各种频域滤波器的函数? * imshow() 例:D0=20; M=256;N=256; H0=double(dftuv(M, N)=D0); H1=1./(1+(dftuv(M,N)/D0).^(2*2)); H2=exp(-((dftuv(M, N)).^2)./(2*(D0^2))); imshow(H0),figure,imshow(H1) figure,imshow(H2) * 绘制三维线框图mesh() 语法:mesh(H); 说明:绘制给定二维函数H的三维线框图,若size(H)很大,则可使用mesh(1:k:end,1:k:end)来绘制间隔为k的点;每个轴细分为40-60显示效果较好。 例: H=exp(-((dftuv(256, 256)).^2)./(2*(30.0^2))); mesh(H(1:5:end,1:5:end)) figure, mesh(H(1:10:end, 1:10:end)) * 绘制三维面图surf() 语法:surf(H); 说明:绘制给定二维函数H的三维面图,若size(H)很大,则可使用surf(1:k:end,1:k:end)来绘制间隔为k的点。 例: H=1./(1+(dftuv(256,256)/30.0).^(2*2)) suft(H(1:5:end,1:5:end)) figure, surf(H(1:10:end, 1:10:end)) * 如何显示滤波器的剖面图? 主要内容: 1 显示一幅图像的频谱; 2 生成频域滤波器; 3 频域滤波增强; * * 傅里叶 变换 滤波函数 H(u,v) 傅里叶 反变换 f(x,y) g(x,y) F(u,v) H(u,v)F(u,v) * 例: f=imread(cameraman.tif); f=im2double(f); F=fft2(f); H=exp(-((dftuv(256, 256)).^2)./(2*(30.0^2))); G=F.*H; g=ifft2(G); imshow(g,[]) figure,imshow(log(1+abs(fftshift(G))),[]) * 1、f(x, y)=f(x, y) ·(-1)x+y 2、F(u, v)=DFT[f(x, y)] 3、生成大小和F相同的频域滤波器H;    要求H的频谱已移中(即,原点位于频率矩形中心) 4、进行频域滤波; G=H.*F; 5、获得G的傅里叶反变换的实部:

文档评论(0)

1亿VIP精品文档

相关文档