实验三、图像的傅立叶变换
一、实验目的
1、了解图像变换的意义和手段; 2、熟悉傅里叶变换的性质; 3、熟练掌握FFT变换及其应用; 4、通过实验了解二维频谱的分布特点;
5、通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。 二、实验设备
1、计算机; 2、MATLAB软件; 3、记录用的笔、纸。
4、移动式存储器(软盘、U盘等)。 三、实验原理
1、应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。
2、傅立叶(Fourier)变换的定义
二维Fourier变换和二维离散傅立叶变换为:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见相关书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。 四、实验步骤
1、打开计算机,启动MATLAB程序;
2、利用MatLab工具箱中的函数编制FFT频谱显示的函数;
3、 a).调入、显示“实验一”获得的图像;图像存储格式应为“.gif”;
b)对这幅图像做FFT并利用自编的函数显示其频谱; 4、实现数字图像傅立叶变换的部分参考程序:
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); %显示原图像的频谱
五、实验数据记录
输入数字图像傅立叶变换的代码如下:
I=imread(‘fengshu.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、理解离散余弦变换系数的特点;
3、理解离散余弦变换在图像数据压缩中的应用; 4、理解哈达玛变换的原理。 二、实验设备
1、计算机; 2、MATLAB软件; 3、记录用的笔、纸。
4、移动式存储器(软盘、U盘等)。 三、实验原理
1.离散余弦变换
离散余弦变换的变换核为余弦函数,计算速度快,有利于图像压缩和其他处理。在大多数情况下,DCT 主要用于图像的压缩操作中,静态图像压缩标准 JPEG 就是采用的 DCT 变换。
二维离散余弦变换的正反变换为:
2.离散哈达玛变换
哈达玛变换本质上是一种特殊排序的沃尔什变换,哈达玛变换矩阵也是一个方阵,只包括+1 和-1 两个矩阵元素,各行或各列之间彼此是正交的,即任意二