实验一 图像的傅里叶变换
一.实验目的
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反变换')
五.实验结果及分析
原始图像