文档介绍:课程大作业实验报告
图像傅里叶变幻、反变换的实现
课程名称:数字图像处理
组长: 王文雄学号:200730590323 年级专业班级:07通信3班
成员一: 庞柱坚学号:200730590318 年级专业班级:07通信3班
成员二: 王弥光学号:200730590322 年级专业班级: 07通信3班
成员三: 学号: 年级专业班级:07通信3班
指导教师
邓继忠
报告提交日期
2010年6月1日
项目答辩日期
2010年6月1日
目录
1. 项目要求 3
2. 项目开发环境 3
3. 系统分析 3
. 系统的主要功能分析 3
. 系统的关键问题及解决方法(或思路) 5
4. 系统设计 8
. 程序流程图及说明 8
. 程序主要模块(或功能)介绍 10
. 一维 FFT 和 IFFT 10
. 二维图像 FFT 和 IFFT: 11
5. 实验结果与分析 12
. 实验结果 12
. 项目的创新之处 13
. 存在问题及改进设想 13
6. 心得体会 14
. 系统开发的体会 14
. 对本门课程的改进意见或建议 14
7. 附件一 15
项目要求
:自修教材相关内容(P52-74)或其它参考资料,在CVI下编程对尺寸为2N(N为正整数)的图像进行FFT(快速傅里叶变换)和(快速傅里叶反变换)。
(不能利用CVI下的函数)
:编程实现任意大小图像的二维傅立叶的变换与反变换。
项目开发环境
项目开发环境主要分为软件环境和硬件环境
软件:Lab Windows/CVI和IMAQ_Vision for LabWindows/CVI。Lab Windows/CVI是美国National Instrument(简称NI)公司开发的基于C语言的虚拟仪器开发平台,适用于自动测试、自动控制、测试仪器通信、测试硬件控制、信号分析及图像处理等软件的开发。经过版本的不断更新,Lab Windows/CVI已经成为测控领域应用最为广泛的软件开发工具之一。而IMAQ_Vision for LabWindows/CVI是NI公司开发的基于LabWindows/CVI的高级图像处理和分析软件包,是进行图像处理和分析的教学和科研的有力工具。软件包提供了3个重要的文件:
硬件:个人PC电脑(主频:*2 内存:1G*2)
系统分析
系统的主要功能分析
傅里叶变换是研究信号频域特性首要数学工具。在数字图像频域处理中,常常要对二维图像做快速傅里叶变换,由于傅里叶变换的可分离性,二维快速傅里叶变可以分解为对行、列两个方向的一维快速傅里叶变换,所以在LabWindows/CVI 集成开发环境下实现二维图像的快速傅里叶变换的关键是一维傅里叶变换的实现。
在本系统设计过程中,主要分成两个部分完成:
第一部分是一维快速傅里叶变换,该部分所包含的变量函数基本上不依赖于特定的软件平台,仅仅与C语言有关,这部分是为二维快速傅里叶服务的。主要有内容及其作用如表格1所示。
表 1 一维快速傅里叶变换及反变换功能模块列表
内容
C程序(数据定义、函数声明等)
功能
复数数据类型定义
typedef struct
{
double real;
double img;
}complex;
定义描述快速傅里叶变换及其反变换数据的类型。
复数类型的四则运算
void plex a, complex b, complex *c);
void plex a, complex b, complex *c);
void plex a, complex b, complex *c);
void plex a, complex b, complex *c);
这四个函数分别完成两个复数类型数据a和b的加法、减法、乘法和除法运算,运算结果存放于指针c指向的数据空间。
初始化快速傅里叶变换及其反变换变换核
void initW(int legnth);
该函数完成~的计算,~在碟新运算时需要用到;参数legnth是一次快速傅里叶变换或反变换的数据长度。
“倒位序”处理函数
void change(int legnth, complex source[]);
该函数完成数据的自然顺序到“倒位序”的变换处理或是“倒位序”到自然顺序的变换处理;参数legnth是一次快速傅里叶变换或反变换的数据长度,source[]是待变换的数据。
快速傅里叶变换
void fft(int length, complex src[]);
该函数完成对个复数数据的快速傅里叶变换;参