1、二维离散傅立叶变换为:F(u,v)MINI侖 f (x,y)e j2 (uxM uyN)x 0 y 0图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体 参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有 实现傅立叶变换的芯片,可以实时实现傅立叶变换。3利用MATLAB软件实现数字图像傅立叶变换的程序:匸imread( 原图像名 .gif ); % 读入原图像文件imshow(l); % 显示原图像fftl=fft2(l); % 二维离散傅立叶变换sfftl=fftshift(fftl); % 直流分量移到频谱中心RR=real(sfftl); % 取傅立叶变换
2、的实部ll=imag(sfftl); % 取傅立叶变换的虚部A=sqrt(RR.A2+ll.A2);% 计算频谱幅值A= ( A-min(min(A) )/(max(max(A)-min(min(A)*225;%归一化figure; %设定窗口imshow(A); %显示原图像的频谱域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和 高通滤波器。频域低通过滤的基本思想:G(u,v)=F(u,v)H(u,v)F(u,v)是需要钝化图像的傅立叶变换形式, H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换
3、得到钝化后的图像。理想地通滤波器(ILPF)具有传递函数:H(u,v)1 ifD(u,v) Do0 ifD(u,v) Do其中,Do为指定的非负数,D(u,v)为(u,v)到滤波器的中心的距离D(u,v) Do的点的轨迹为一个圆。n阶巴特沃兹低通滤波器(BLPF)(在距离原点Do处出现截至频率)的传递函数为H (u,v)11 D(u,v) Do2n与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在 Do处突然不连续高斯低通滤波器(GLPF)的传递函数为H(u,v) eD2(u,v) 2 2其中,为标准差。n阶巴特沃兹高通滤波器、Hip(u,v),通过使用如下的H hp 1 H|p(
4、u,V)相应的高通滤波器也包括:理想高通滤波器、 高斯高通滤波器。给定一个低通滤波器的传递函数 简单关系,可以获得相应高通滤波器的传递函数:利用MATLAB实现频域滤波的程序f=imread(room.tif);F=fft2(f); % 对图像进行傅立叶变换S=fftshift(log(1+abs(F);% 对变换后图像进行队数变化,并对其坐标平 移,使其中心化 S=gscale(S); % 将频谱图像标度在 0-256 的范围内 imshow(S) % 显示频谱图像 h=special(sobel); % 产生空间 sobel 模版 freqz2(h) % 查看相应频域滤波器的图像 PQ=p
5、addedsize(size(f);% 产生滤波时所需大小的矩阵 H=freqz2(h,PQ(1),PQ(2);% 产生频域中的 sobel 滤波器 H1=ifftshift(H); % 重排数据序列,使得原点位于频率矩阵的左上角 imshow(abs(H),) % 以图形形式显示滤波器 figure,imshow(abs(H1),) gs=imfilter(double(f),h); % 用模版 h 进行空域滤波 gf=dftfilt(f,H1); % 用滤波器对图像进行频域滤波 figure,imshow(gs,) figure,imshow(gf,) figure,imshow(abs(
6、gs),) figure,imshow(abs(gf),) f=imread(number.tif% 读取图片PQ=paddedsize(size(f);% 产生滤波时所需大小的矩阵 D0=0.05*PQ(1); % 设定高斯高通滤波器的阈值 H=hpfilter(gaussian,PQ(1),PQ(2),D0);% 产生高斯高通滤波器 g=dftfilt(f,H); % 对图像进行滤波 figure,imshow(f) % 显示原图像 figure,imshow(g,) % 显示滤波后图像实验步骤1.生成如下图所示的一个二维矩形信号H = zeros(256,256);H(63:192,63
7、:192) = 1;imshow(H)ti tle(lvboqiIvboqifor i=1:M(1)for k=1:if(i-128)A2+(k-160)A2=10;N(i,k)=1;endJ=fft2(gg);J=fftshift(log(abs(J);K=J.*N;L=ifft2(K);L=ifftshift(L);figure,imshow(K);2.利用一维FFT计算二维付里叶变换。分别显示行计算结果和列变换结果(立体结果,用mesh(F)显示)I=imread(camera name.bmpimshow(I);title(原图像F1 = fft2(I);C1 = ifft2(F1);
8、imshow(log(1+abs(C1),);2滤波后图像mesh(C1);F2 = fft(I);F3 = fft(F2);C3 = ifft(F3C2 = ifft(C3);imshow(log(1+abs(C2),); title(1/1 滤波后图像mesh(log(1+abs(C2);原图像2滤波后图像 一 一 _ 1/1滤波后图像3.利用MatLab工具箱中的函数编制FFT频谱显示的函数;.gif4 a).调入、显示“实验一”获得的图像;图像存储格式应为“b) 对这三幅图像做FFT并利用自编的函数显示其频谱;c) 讨论不同的图像内容与FFT频谱之间的对应关系。5利用MATLAB提供的
9、低通滤波器实现图像信号的滤波运算,并与空间滤波进行比较l=imread(M,N = size(l);F = fft2(l);A=fftshift(F);%figure;H = zeros(M,N);imshow(H);低通滤波器B = A.*H;C = ifft2(B);imshow(log(1+abs(C),);滤波后低通滤波器滤波后6利用MATLAB提供的高通滤波器对图像进行处理。J = imno ise(l,gauss,0.02); % 添加高斯噪声%J = imn oise(l,salt & pepper % 添加椒盐噪声imshow(J);噪声图像M,N = size(J);A =
10、fft2(J);H = on es(M,N);192) = 0;高通滤波器7记录和整理实验报告四、实验报告内容1叙述实验过程;2提交实验的原始图像和结果图像。五、 思考题1 傅里叶变换有哪些重要的性质 ?2答:线性性质,奇偶虚实性,对称性质,尺度变换性质,时移性质,频 移特性.2图像的二维频谱在显示和处理时应注意什么 ? 答:进行傅里叶变换的图像应该是灰度图像。 .3. 用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,必须 包括原始图像及其计算 / 处理后的图像。4. 结合实验,评价频域滤波有哪些优点?滤波器参数的物理意义明确,分析起来很直观。5. 在频域滤波过程中需要注意哪些事项?答:注意使用 fftshift 函数将频谱的零分量移至频谱的中心
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1