计算机与信息工程学院验证性实验报告
专业:通信工程 年级/班级:2011级 2013—2014学年第一学期 课程名称 数字图像处理 指导教师 段新涛 本组成员 学号姓名 实验地点 计科楼111 实验时间 周五5-6节 项目名称 图像的傅立叶变换 实验类型 验证性 一、实验目的
1了解图像变换的意义和手段;
2熟悉傅立叶变换的基本性质; 3熟练掌握FFT变换方法及应用; 4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。 6评价人眼对图像幅频特性和相频特性的敏感度。
二、实验原理
1 应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2 傅立叶(Fourier)变换的定义
对于二维信号,二维Fourier变换定义为:
??F(u,v)?逆变换:
??????f(x,y)e?j2?(ux?uy)dxdy
??f(x,y)?二维离散傅立叶变换为:
??????F(u,v)ej2?(ux?uy)dudv
ik?j2?(m?n)1N?1N?1NN F(m,n)???f(i,k)eNi?0k?0逆变换:
1f(i,k)?Nm?0n?0??F(m,n)eN?1N?1j2?(mik?n)NN
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
3利用MATLAB软件实现数字图像傅立叶变换的程序:
I=imread(‘原图像名.gif’);%读入原图像文件 imshow(I); %显示原图像 fftI=fft2(I); %二维离散傅立叶变换 sfftI=fftshift(fftI); %直流分量移到频谱中心 RR=real(sfftI); %取傅立叶变换的实部 II=imag(sfftI); %取傅立叶变换的虚部 A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 %归一化 figure; %设定窗口 imshow(A); %显示原图像的频谱
三、实验步骤
1. 将图像内容读入内存;
2. 用Fourier变换算法,对图像作二维Fourier变换; 3. 将其幅度谱进行搬移,在图像中心显示; 4. 用Fourier系数的幅度进行Fourier反变换; 5. 用Fourier系数的相位进行Fourier反变换;
6. 比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。 7. 记录和整理实验报告。
四、实验仪器
1.计算机;
2 .MATLAB程序;
3.移动式存储器(软盘、U盘等)。 4. 记录用的笔、纸。
五、实验报告内容
1.叙述实验过程;
2. 提交实验的原始图像和结果图像。
六、实验图片
number.tif
七、实验程序及结果
clc;clear all
I=imread('Fig0707(a)(Original).tif.tif'); %读入原图像文件 imshow(I); %显示原图像 title('原始图像')
fftI=fft2(I); %二维离散傅立叶变换 sfftI=fftshift(fftI); %直流分量移到频谱中心 RR=real(sfftI); %取傅立叶变换的实部 II=imag(sfftI); %取傅立叶变换的虚部 A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化 figure; %设定窗口
imshow(A); %显示原图像的频谱 title('原始图像的频谱')
f1=ifft2(A); %用Fourier系数的幅度进行Fourier反变换 f2=ifft2(angle(fftI)); %用Fourier系数的相位进行Fourier反变换; figure
subplot 121;imshow(f1,[])
title('幅度进行Fourier反变换') subplot 122;imshow(f2,[])
title('相位进行Fourier反变换')
原始图像
原始图像的频谱
幅度进行Fourier反变换相位进行Fourier反变换教师签名:
年 月
日