课程名称: 数字图像处理
题 目: 数字图像处理的傅里叶变换
学生姓名:
专 业: 计算机科学与技术
班 别: 计科本101班
学 号:
指导老师:
日 期: 2013 年 06 月 20 日
数字图像处理的傅里叶变换
1.课程设计目的和意义
(1)了解图像变换的意义和手段
(2)熟悉傅里叶变换的基本性质
(3)热练掌握FFT的方法反应用
(4)通过本实验掌握利用MATLAB编程实现数字图像的傅里叶变换
通过本次课程设计,掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养综合设计能力。
2.课程设计内容
(1)熟悉并掌握傅立叶变换
(2)了解傅立叶变换在图像处理中的应用
(3)通过实验了解二维频谱的分布特点
(4)用MATLAB实现傅立叶变换仿真
3.课程设计背景与基本原理
傅里叶变换是可分离和正交变换中的一个特例,对图像的傅里叶变换将图像从图像空间变换到频率空间,从而可利用傅里叶频谱特性进行图像处理。从20世纪60年代傅里叶变换的快速算法提出来以后,傅里叶变换在信号处理和图像处理中都得到了广泛的使用。
3.1课程设计背景
数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
3.2 傅里叶变换
(1)应用傅里叶变换进行数字图像处理
数字图像处理(digital image processing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。
20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。
傅里叶变换在数字图像处理中广泛用于频谱分析,傅里叶变换是线性系统分析的一个有力工具,它使我们能够定量地分析诸如数字化系统,采样点,电子放大器,卷积滤波器,噪声,显示点等地作用(效应)。傅里叶变换(FT)是数字图像处理技术的基础,其通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析,简化了计算工作量,被喻为描述图像信息的第二种语言,广泛应用于图像变换,图像编码与压缩,图像分割,图像重建等。因此,对涉及数字图像处理的工作者,深入研究和掌握傅里叶变换及其扩展形式的特性,是很有价值得。
(2)关于傅里叶(Fourier)变换
在信号处理中,傅里叶变换可以将时域信号变到频域中进行处理,因此傅里叶变换在信号处理中有着特殊重要的地位。
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。傅里叶变换属于谐波分析。傅里叶变换的逆变换容易求出,而且形式与正变换非常类似;正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取; 卷积定理指出:傅里叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段; 离散形式的傅里叶变换可以利用数字计算机快速的算出(其算法称为快速傅里叶变换算法(FFT))。
3.3 离散余弦变换
离散余弦变换(discrete cosine transform,DCT)是一种可分离和正交变换并且是对称的。它与傅里叶变换也有密切的联系,近年得到了广泛应用,特别是在图像压缩领域。
1-D离散余弦变换和其反变换由以下两式定义:
u=0,1,...,N-1
x=0,1,...,N-1
其中a(u)为归一化加权系数,由下式定义:
2-Dd DCT对由下面两式定义:
u,v=0,1,...,N-1
x,y=0,1,...,N-1
4.设计步骤
(1)打开计算机,安装和启动MATLAB程序;在“Current Directory” 中选择待处理图像文件所在文件夹。
(2)利用MatLab菜单栏中单击“File”→“New”→“M-File”,在弹出的Editor - Untitled窗口编辑区中输入程序代码。
(3)输入完成后单击Editor - Untitled菜单栏中的“Debug”→“Save and Run”运行程序。对该程序进行编译,检查错误并纠正,运行并显示结果,比较差异。
5、程序设计
方法一:直接将彩色图像进行傅里叶变换,再求离散傅里叶频谱图程序如下:
i=imread();
figure(1)
imshow(i);
colorbar; %显示图像的颜色条
title('原彩色图像') %图像命名
X1=img(:,:,1);
X2=img(:,:,2);
X3=img(:,:,3);
Y1=fft2(X1); %傅里叶变换
Y2=fft2(X2);
Y3=fft2(X3);
Y11=real(ifft2(Y1)); %傅里叶反变换
Y21=real(ifft2(Y2));
Y31=real(ifft2(Y3));
Y(:,:,1)=Y11;
Y(:,:,2)=Y21;
Y(:,:,3)=Y31;
YY=uint8(Y);
figure(2);
imshow(YY,[ ]);
colorbar; %显示图像的颜色条
title('经过二维快速傅里叶变换再逆变换后的图像') %图像命名
i=i(:,:,3);
ffti=fft2(i);
sffti=fftshift(ffti); %求离散傅里叶频谱
%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图位置
RRfdp1=real(sffti); %取傅立叶变换的实部
IIfdp1=imag(sffti); %取傅立叶变换的虚部
a=sqrt(RRfdp1.^2+IIfdp1.^2); %计算频谱幅值
a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; %归一化
figure(5) %设定窗口
imshow(real(a)); %显示离散傅里叶频谱图像
colorbar; %显示图像的颜色条
title('原彩色图像的离散傅里叶频谱') %图像命名
方法二:将彩色图像转换为灰度图像在进行傅里叶变换,再求原彩色图像的离散傅里叶频谱图程序如下:
i=imread(); %读入原图像文件
figure(1); %设定窗口
imshow(i); %显示原图像
colorbar; %显示图像的颜色条
title('原彩色图像') %图像命名
I=rgb2gray(i);
figure(2); %设定窗口
imshow(I);
colorbar; %显示图像的颜色条
title('原彩色图像转换为灰度图像') %图像命名
j=fft2(I); %二维离散傅里叶变换
k=fftshift(j); %直流分量移到频谱中心
l=log(abs(k)); %数字图像的对数变换
figure(3); %设定窗口
imshow(l,[]); %显示过二维快速傅里叶变换后的图像
colorbar; %显示图像的颜色条
title('经过二维快速傅里叶变换后的图像') %图像命名
n=ifft2(j)/255; %逆二维快速傅里叶变换
figure(4); %设定窗口
imshow(n); %显示经过二维快速傅里叶逆变换后的图像
colorbar; %显示图像的颜色条
title('经过二维快速傅里叶逆变换后的灰度图像') %图像命名
i=i(:,:,3);
ffti=fft2(i);
sffti=fftshift(ffti); %求离散傅里叶频谱
%对原始图像进行二维离散傅里叶变换,并将其坐标原点移到频谱图位置
RRfdp1=real(sffti); %取傅立叶变换的实部
IIfdp1=imag(sffti); %取傅立叶变换的虚部
a=sqrt(RRfdp1.^2+IIfdp1.^2); %计算频谱幅值
a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225; %归一化
figure(5) %设定窗口
imshow(real(a)); %显示离散傅里叶频谱图像
colorbar; %显示图像的颜色条
title('原彩色图像的离散傅里叶频谱') %图像命名
6.运行结果
对源代码检查无误运行后,通过这些图可以看出一幅图片经过不同类型的傅里叶变换后,能够达到不同的处理效果。
6.1方法一运行结果如下:
图1-1 原彩色图像
图1-2 经过二维快速傅里叶变换再逆变换后的图像
图1-3 原彩色图像的离散傅里叶频谱图
6.2方法二运行结果如下:
图2-1 原彩色图像
图2-2 原彩色图像的灰度图
图2-3 经过二维傅里叶变换后的图像
图2-4 经过二维快速傅里叶逆变换后的灰度图像
图2-5 原彩色图像的离散傅里叶频谱图