实验三_图像的傅立叶变换.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三_图像的傅立叶变换

实验三、图像的傅立叶变换 一、实验目的 1了解图像变换的意义和手段; 2熟悉傅里叶变换的基本性质; 3熟练掌握FFT的方法及应用; 4通过实验了解二维频谱的分布特点; 5通过本实验掌握编程实现数字图像的傅立叶变换。 二、实验原理 1应用傅立叶变换进行图像处理 傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。 2傅立叶(Fourier)变换的定义   对于二维信号,二维Fourier变换定义为:      二维离散傅立叶变换为:      图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。 三、实验内容 1.根据二维离散Fourier变换的定义编写程序 2.实现图象的变换 3.画出图象的频谱图。 2提交实验的原始图像和结果图像。 3报告内容主要是将原理与实验现象相结合,利用原理简要解释观察到的现象。 六、思考题 1.傅里叶变换有哪些重要的性质? 2.图像的二维频谱在显示和处理时应注意什么? 1. 源程序: // MyDIPView.cpp : implementation of the CMyDIPView class // #include stdafx.h #include MyDIP.h #include MyDIPDoc.h #include MyDIPView.h #include math.h #includecomplex using namespace std; #define PI 3.14159 #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif /************************************************************************* * * 函数名称: * FFT() * * 参数: * complexdouble * TD - 指向时域数组的指针 * complexdouble * FD - 指向频域数组的指针 * r -2的幂数,即迭代次数 * * 返回值: * 无。 * * 说明: * 该函数用来实现快速付立叶变换。 * ************************************************************************/ VOID WINAPI FFT(complexdouble * TD, complexdouble * FD, int r) { // 付立叶变换点数 LONG count; // 循环变量 int i,j,k; // 中间变量 int bfsize,p; // 角度 double angle; complexdouble *W,*X1,*X2,*X; // 计算付立叶变换点数 count = 1 r; // 分配运算所需存储器 W = new complexdouble[count / 2]; X1 = new complexdouble[count]; X2 = new complexdouble[count]; // 计算加权系数 for(i = 0; i count / 2; i++) { angle = -i * PI * 2 / count; W[i] = complexdouble (cos(angle), sin(angle)); } // 将时域点写入X1 memcpy(X1, TD, sizeof(complexdouble) * count); // 采用蝶形算法进行快速付立叶变换 for(k = 0; k r; k++) { for(j = 0; j 1 k; j++) { bfsize = 1 (r-k); for(i = 0; i bfsize / 2; i++) { p = j * bfsize; X2[i + p] = X1[i + p] + X1[i + p + bfsize / 2]; X2[i + p + bfsize / 2] =

文档评论(0)

haodoc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档