图像的傅里叶变换幻灯片.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像的傅里叶变换幻灯片

傅里叶变换的MATLAB函数 在MATLAB中提供了fft函数用于实现一维快速傅里叶变换。其调用格式为: (1)Y=fft(X):返回向量X的离散傅里叶变换。如果X为矩阵,fft函数返回矩阵每列的傅里叶变换。 (2)Y=fft2(X):返回二维离散傅里叶变换,结果Y和X的大小相同。 (3)Y=fftn(X):返回X的多维离散傅里叶变换,结果Y和X的大小相同。 (4)Y=fftshift(X):把fft函数、fft2函数和fftn函数输出结果的零频率部分移到数组的中间。 傅里叶变换的MATLAB函数 构造一幅黑白二值图像,在256*256的黑色背景中心产生一个8*16的白色矩形方块,然后对该图像进行二维傅里叶变换。 I=zeros(256,256); I(124:132,120:136)=1; subplot(131);imshow(I); xlabel(‘(a)原始图像’); I=im2double(I);%把图像数据转换为双精度数,因为FFT要求输入的矩阵为双精度浮点型。 傅里叶变换的MATLAB函数 F1=fft2(I); subplot(132);imshow(log(1+abs(F1)),[]); xlabel(‘(b)傅里叶变换’); FC1=fftshift(F1);%将二维傅里叶变换的零频率由左上角移到频谱的中心 subplot(133);imshow(FC1); xlabel(‘(c)中心化’) 傅里叶变换的MATLAB函数 例二:对一幅图像实施二维DFT,显示并观察其频谱。对单缝进行快速傅里叶变换,以三种方式显示频谱。即:直接显示(坐标原点在左上角);把坐标原点平移至中心后显示;以对数方式显示。 f=zeros(512,512); f(246:266,230:276)=1; subplot(221);imshow(f,[]); xlabel(‘单狭缝图像’); F=fft2(f); S=abs(F); 傅里叶变换的MATLAB函数 subplot(222);imshow(S,[]); xlabel(‘幅度谱(频谱坐标原点在左上角)’); Fc=fftshift(F);%把频谱坐标原点由左上角移至屏幕中央。 subplot(223); Fd=abs(Fc); imshow(Fd,[ ]); xlabel(‘幅度谱(频谱坐标原点在屏幕中央)’); S2=log(1+abs(Fc)); subplot(224);imshow(S2,[ ]); xlabel(‘以对数方式显示频谱’) 傅里叶变换的MATLAB函数 例三:对rice.png图像进行傅里叶变换 I1=imread(‘rice.png’); I1=im2double(I1); F1=fft2(I1); FC1=fftshift(F1); subplot(121);imshow(I1); xlabel(‘(a)原始图像’); subplot(122);imshow(log(1+abs(FC1))); xlabel(‘(b)傅里叶谱’); 傅里叶变换的MATLAB函数 f=zeros(1000,1000); f(350:649,475:524)=1; subplot(221); imshow(f,’notruesize’);% ‘notruesize’图片去适应窗口,窗口大小不动,自动调节图片大小。所以显示出来的图片跟实际尺寸可能不一致。‘truesize’ 就是按图片实际大小显示图片,窗口会自动调节大小去适应图片尺寸。这个是默认情况,跟省略这个参数一样。 xlabel(‘(a)原始图像’); subplot(222);F=fftshift(abs(fft2(f))); 傅里叶变换的MATLAB函数 imshow(F,[-1,5],’notruesize’);%将F值域设置为[-1,5] xlabel(‘(b)傅里叶变换频谱’); f=zeros(1000,1000); f(350:649,475:524)=1; f=imrotate(f,45,’bilinnear’,’crop’);%以图像中心为原点旋转45度,才用双线性插值,如果旋转后的图像有所增大,则剪切其中间部分,返回和原图大小一致的图像 subplot(223);imshow(f,’notruesize’); xlabel(‘(c)图像正向旋转45度‘); 傅里叶变换的MATLAB函数 F=fftshift(abs(fft2(f))); subplot(224);imshow(F,[-1,5],’notruesize’); xlabel(‘(d)图像旋转45度的傅里叶变换频谱’); * *

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档