数字图像处理实验 下载本文

实验一 图像的傅里叶变换

一.实验目的

1了解图像变换的意义和手段; 2熟悉傅立叶变换的基本性质;

3熟练掌握FFT变换方法及应用通过实验了解二维频谱的分布特点; 5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换; 6评价人眼对图像幅频特性和相频特性的敏感度。

二.实验仪器

1计算机;

2 MATLAB程序;

三.实验原理

1.应用傅立叶变换进行图像处理

傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2. 傅立叶(Fourier)变换的定义

对于二维信号,二维Fourier变换定义为:

逆变换:

二维离散傅立叶变换为:

逆变换:

图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

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); %显示原图像的频谱

四.实验代码

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反变换')

五.实验结果及分析

原始图像