1、 一、计算图象的频谱函数5.设计图象 3*30*30/256*256,垂直排列;建议:选用 Matlab 函数直接调用实现,重点观察空域图象和频域频谱的对应关系。原理:傅立叶变换傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原和图像分析与描述等,每一类处理方法都要用到图像变换,尤其是图像的傅立叶变换。离散傅立叶(Fourier)变换的定义:二维离散傅立叶变换(DFT)为:逆变换为:式中,在 DFT 变换对中, 称为离散信号 的频谱,而 称为幅度谱, 为相位角,功率谱为频谱的平方,它们之间的关系为:图像的傅立叶变换有快速算法。思路:先创建一个 256*256 的图,在其中有三
2、个 30*30 的模块垂直排列,它们的像素都为 1,其他部分都为 0,此过程可以用 for 语句实现,一个一个像素处理,最后将创建的图像进行傅里叶变换,显示频域图。创建一个 256*256的图,全部像素赋0。三个 30*30 的模块垂直排列,它们的像素都为 1。创建的图像进行傅里叶变换显示频域图10 )(2exp),(),(MxNy NvyMuxjfvuF10)(2),(),(uvvyuxjFyf ,xu 1,0,y)()(yxf ),(vuF),(vu,),(exp,),( vjIuRvjvF程序:clc;A=;s=256;w=256;for i=1:sfor j=1:wA(i,j)=0;e
3、ndendfor i=113:143for j=113:143A(i,j)=1;endendfor i=53:83for j=113:143A(i,j)=1;endendfor i=173:203for j=113:143A(i,j)=1;endendsubplot(1,2,1),imshow(A);title(A);F = fft2(A);F2=fftshift(F);F2 = log(abs(F2);subplot(1,2,2),imshow(F2,-1 5); title(傅里叶 变换 );图:二、根据计算证明傅立叶变换的性质5.空域平移性:设 f1(x,y)为 30*30/256*25
4、6, 左移得到 f2(x,y), 求 F2(u,v); 上移得到 f3(x,y), 求 F3(u,v); 证明 F1(u,v)、F2(u,v)和 F3(u,v)的绝对值相等。思路:方法同第一题,只是加了平移,同样先创建一个 256*256 的 f1 图像,再将 f1 左移得到 f2,只是像素点值的变换,再将 f1 上移得到 f3,最后分别进行傅里叶变换,设一个参数 a,当 F1(u,v)、F2(u,v) 和 F3(u,v)的绝对值相等时,a 的值是 1.程序:clc;f1=;f2=;f3=;s=256;w=256;for i=1:sfor j=1:wf1(i,j)=0;endendfor i=
5、113:143for j=113:143f1(i,j)=1;endendfor i=1:sfor j=1:wf2(i,j)=f1(i,j);endendfor i=113:143for j=53:83f2(i,j)=1;endendfor i=113:143for j=113:143f2(i,j)=0;endendfor i=1:sfor j=1:wf3(i,j)=f1(i,j);endendfor i=53:83for j=113:143f3(i,j)=1;endendfor i=113:143for j=113:143f3(i,j)=0;endendF=fft2(f1);F1= abs(F
6、);F=fft2(f2);F2= abs(F);%F2=fftshift(F2);F3=fft2(f3);F3 = abs(F3);%F3=fftshift(F3);s,w=size(F1);for i=1:sfor j=1:wif F1(i,j)=F2(i,j)else a=0;endendendsubplot(2,2,1),imshow(f1);title(f1);subplot(2,2,2),imshow(f2);title(f2);subplot(2,2,3),imshow(f3);title(f3);figure,imshow(fftshift(F2),-1 5); title(F2
7、);figure,imshow(fftshift(F3),-1 5); title(F3);结果:图像:F3F2三、图象变换比较利用现有的离散傅立叶变换、离散余弦变换、Walsh-Hadamard 变换对同一图象实施变换,比较三种变换所得到的频谱。原理:离散余弦变换在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么,其傅里叶技术中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换(DCT, Discrete Cosine Transform)7。二维离散余弦正变换公式为(2-3) vNyuxyfNvcuFyx 21cos21cos,2, 10式中, 。1,0,vyx 其 它
8、10,)(vvWalsh-Hadamard 变换程序:clc;A=imread(C:Documents and SettingsAdministrator桌面作业DIP 上机图象1p105.tif); %显示原 图10 )()()()(1010 )(,(1),( ni iiii vbybubxbNxyyxfvuHsubplot(2,2,1),imshow(A); title(A);X=double(A);F2=fft2(X);F2=fftshift(F2);F2 = log(abs(F2);subplot(2,2,2),imshow(F2,-1 10);title(F2); J = dct2(
9、A);subplot(2,2,3),imshow(log(abs(J);title(J);J(abs(J) 10) = 0;subplot(2,2,4),imshow(log(abs(J);title(J1);K = idct2(J);figure,imshow(K,0 255);title(K);a=double(A)/255;ha=H*a*H;ha=ha/256;figure,imshow(ha);title(图像的二 维离散哈达玛变换 );图像:A F2J J1K二 二 二 二 二 二 二 二 二 二 二 二四、图象的频域滤波5.根据窗函数法设计一个低通滤波器,对两图象(f1(x,y)为
10、 30*30/256*256 的图象;f2(x,y)=p205 图象)进行低通滤波,观察分析空域图象和频谱分布的变化。原理:低通滤波图像的能量大部分集中在幅度谱的低频和中频部分,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。由卷积定理,在频域实现低通滤波的数学表达式:G(u,v) =H(u,v)F(u,v)1) 理想低通滤波器(ILPF)思路:先对图进行傅里叶变换,再通过 C 语句设计理想低通滤波器来处理变换后的图像,最后反变换回来,复原图像。f2(x,y)=p205 图象程序:clc;A=imread(C:Documents and SettingsAd
11、ministrator桌面作业DIP 上机图象2p205.tif); subplot(2,2,1),imshow(A); title(A);f=double(A);g=fft2(f);g=fftshift(g); subplot(2,2,2),imshow(log(abs(g),-1 10);title(傅里叶变换);M,N=size(g);D0=100; %截止 频率m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:ND=sqrt(i-m)2+(j-n)2);if(D=D0) h=1;else h=0;endI(i,j)=h*g(i,j);endendsubplo
12、t(2,2,3),imshow(I);title(理想低通滤波器);I=ifftshift(I);J1=ifft2(I);J2=uint8(real(J1);subplot(2,2,4),imshow(J2); title(复原图);图:f1(x,y)为 30*30/256*256 的图象程序:f=zeros(256,256);f(113:143,113:143)=1;B=double(f);g=fft2(f);g=fftshift(g);subplot(2,2,1),imshow(f);title(f);subplot(2,2,2),imshow(log(abs(g),-1 5);title(傅里叶变换);M,N=size(g);D0=100; %截止 频率m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:ND=sqrt(i-m)2+(j-n)2);if(D=D0) h=1;else h=0;endI(i,j)=h*g(i,j);endendsubplot(2,2,3),imshow(I);title(理想低通滤波器);J1=ifft2(I);J1=ifftshift(J1);J2=uint8(real(J1);subplot(2,2,4),imshow(J1); title(复原图);图:f 二二二二二二二二二二二二 二二二