- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像的傅立叶变换及其应用
设计四 图像的傅立叶变换及其应用
设计目的
通过该设计,掌握傅立叶变换的定义及函数。
设计内容
加载imdemos saturn2文件,显示文件中的saturn2,并对其进行傅立叶变换,给出源程序及结果,并显示其幅值的结果。
对矩阵A=magic(3)和B=ones(3)按照快速卷积的方法计算两个矩阵的卷积,并用卷积函数conv2验证结果。给出原程序和结果。
主要MATLAB函数
1. 图像的显示
Imread 读入图像文件 image 显示图像文件
plot 绘制图形
2. 图像的离散傅立叶变换
假设是一个离散空间中的二维函数,则该函数的二维傅立叶变换定义为
f(ω1,ω2)=*e^jω1n*e^jω2n
其中ω1和ω2是频率变量,单位是弧度/采样单元。函数f(ω1,ω2)为函数f(m,n)的频谱。
二维傅立叶反变换的定义为
f(m,n)=ω1,ω2)*e^jω1n*e^jω2n
因此,函数f(m,n)可以用无数个不同频率的复指数信号的和表示,在频率(ω,ω2)处复数信号的幅度和相位为f(ω1,ω2)。
MATLAB提供的快速傅立叶变换函数
fft2:用于计算二维快速傅立叶变换函数,其语法格式为
b=fft2(I),返回图心爱那个I的二维傅立叶变换矩阵,输入图像I和输出图像B大小相同;
b=fft2(I,m,n),通过对图像I剪切或补零,按用户指定的点数计算二维傅立叶变换,返回矩阵B的大小为mxn。
很多MATLAB图像显示复数图像,为了观察图像傅立叶变换后的结果,应对变换后的结果求模,方法是对变换结果使用abs函数。
fftn:用于计算n维快速傅立叶变换,其语法格式为 b=fftn(I),计算图像的n维傅立叶变换,输出图像B和输入图像I大小相同;
b=fftn(I,size),通过对图像I剪切和补零,按size指定的点数计算n维傅立叶变换,返回矩阵B的大小为size。
fftshift:用于将变换后的图像频谱从矩阵的原点移动到矩阵的中心,其语法格式为
b= fftshift(I),将变换后的图像频谱从矩阵的原点移动到矩阵的中心。
3.快速傅立叶变换的应用
1)滤波器的频率响应
滤波器冲击响应的傅立叶变换就是该滤波器的频率响应。
MATLAB提供的freqz2函数可以同时计算和显示滤波器的频率响应,其语法格式为
freqz2(h),可同时计算和显示滤波器的频率响应。
2)快速卷积
傅立叶变换的另一个重要特性是能够实现快速卷积。由线性系统理论可知,两个系统的傅立叶变换等于两个函数的傅立叶变换的乘积。该特性与快速傅立叶变换一起,可以快速计算函数的卷积。
假设A为MxN矩阵,B为PxQ矩阵,则快速卷积的方法如下
①对A和B补0,使其大小都为(M+P-1)x(N+Q-1);
②利用函数fft2对矩阵进行二维FFT变换。
③将两个FFT结果相乘,利用函数ifft2对得到的乘积进行傅立叶反变换。
另外,利用MATLAB提供的卷积函数conv2可以直接对两个函数进行卷积,其语法格式
C=conv(A,B),计算矩阵A和B的二维卷积.
设计方案:
1.显示图形并进行傅立叶变化
用imread读出imdemos saturn2,并用image显示saturn2,将图形用二维快速傅立叶变换函数进行变换,再使用fftshift函数将图像的频谱从原点移到中心。之后显示频谱图形,再用plot画出幅值图形。
2实现矩阵的卷积
在MATLAB中输入奇异矩阵和全一矩阵,先将它们用卷积函数conv2进行卷积,然后将A和B补零变成五阶矩阵,再分别对两个矩阵进行傅立叶变换,将两个傅立叶结果相乘,利用函数ifft2对得到的乘积进行傅立叶反变换。
五.主要参数:
imdemos saturn2:MATLAB中自带的图片。
b:saturn2傅立叶变换。
c:将变换后的saturn2即图像b的频谱中心从原点移到矩阵中心。
A:三阶奇异矩阵。
B:三阶全一矩阵。
C:快速卷积的结果。
D:矩阵A和B使用conv2卷积的结果。
E:A矩阵傅立叶变换后的矩阵。
F:B矩阵傅立叶变换后的矩阵。
G:矩阵A矩阵B的乘积。
R:G变为无符号8位整形的结果。
六 、 源程序:
1加载imdemos saturn2并进行傅立叶变换
imread(‘saturn.png’) ;
image (saturn2)
b=fft2(saturn2)
c=fftshift(b);
image (b)
image (c)
plot(abs(c))
2.快速卷积
A=magic(3);
B=ones(3);
D=conv2(A,B)
B(5,5)=0;
A(5,5)=0;
E=fft2(A);
F=fft2(B);
G=E.*F
C= ifft
文档评论(0)