设为首页 | 加入收藏

当前位置:主页 > 源码 >
源码
图像处理之傅里叶变换matlab实现.doc
发布时间:2019-12-13 16:40 来源:网络整理

      function=imageDFT2I=imread(lenna.jpg);I=rgb2gray(I);I=im2double(I);x,y=size(I);Ax=ones(x,y);ans=ones(x,y);com=0+1i;%对每一列进展DFTfork=1:xform=1:ysn=0;forn=1:xsn=sn+I(n,m)exp(-com2pikn/x);endAx(k,m)=sn;endend%对每一条龙进展DFTforl=1:yfork=1:xsn=0;form=1:ysn=sn+Ax(k,m)exp(-com2pilm/y);endans(k,l)=sn;endendF=fftshift(ans);F=abs(F);F=log(F+1);figure(6);imshow(F,);end

      优化二维傅立叶变换将按列进展傅里叶变换中应用DFT改为应用fft,速提拔很快。

      function=testDTFT(xn,n,N)figure(3);w=-800:1:8004pi/800;%频域共-800----+800的长度(本应是无穷,高频斤两很少,故省去)w=-N/2:1:N/24pi2/N;X=xnexp(-j(nw));%求dtft变换,利用原始界说的法子,对复指数斤两求和而得subplot(211)stem(n,xn);title(原始信号(指数信号));subplot(212);plot(w/pi,abs(X));title(DTFT变换)end

      二维傅立叶变换原始图像

      应用fft2function=imagefftI=imread(lenna.jpg);I=rgb2gray(I);I=im2double(I);F=fft2(I);F=fftshift(F);F=abs(F);T=log(F+1);figure(4);imshow(T,);end

      应用二维傅立叶变换公式速很慢function=imageDFTI=imread(lenna_s.jpg);I=rgb2gray(I);I=im2double(I);x,y=size(I);ans=ones(x,y);com=0+1i;foru=1:xforv=1:ysn=0;fori=1:xforj=1:ysn=sn+I(i,j)exp(-com2pi(ui/x+vj/y));endendans(u,v)=sn;endendF=fftshift(ans);F=abs(F);F=log(F+1);figure(5);imshow(F,);end

      优化二维傅立叶变换先按列进展傅里叶变换,再对行进展傅立叶变换,简化划算。

      总括:这道题是东柑细同窗的课后练练习,要紧是有关傅里叶变换matlab,点教师为魏教师。