matlab-光电图像处理实验(傅立叶变换)
matlab中的傅里叶变换

matlab中的傅里叶变换Matlab中的傅里叶变换是一种数学工具,用于将一个信号从时域转换到频域。
它是一种广泛应用于信号处理、图像处理、通信系统等领域的重要技术。
在Matlab中,傅里叶变换可以通过内置函数fft和ifft来实现。
fft函数用于计算离散傅里叶变换(DFT),而ifft函数用于计算离散傅里叶逆变换(IDFT)。
傅里叶变换在Matlab中的使用步骤如下:1. 准备信号数据,将待变换的信号存储在一个向量中,可以是时间域的信号序列。
2. 应用fft函数,使用fft函数对信号进行傅里叶变换,得到频域表示。
3. 可选操作,对频域表示进行幅度谱和相位谱的计算,以及其他的频谱分析操作。
4. 应用ifft函数,如果需要,可以使用ifft函数对频域表示进行逆变换,将信号恢复到时域。
需要注意的是,傅里叶变换得到的频域表示是对称的,通常只需要使用一半的频域数据进行分析。
此外,Matlab中还提供了其他相关的函数,如fftshift和ifftshift,用于对频域数据进行平移操作。
傅里叶变换在信号处理中有广泛的应用,例如:1. 频谱分析,可以通过傅里叶变换将信号从时域转换到频域,进而分析信号的频谱特性,如频率成分、频谱密度等。
2. 滤波器设计,可以在频域上设计滤波器,通过傅里叶变换将滤波器的频率响应转换到时域,实现对信号的滤波操作。
3. 图像处理,可以利用傅里叶变换对图像进行频域滤波、图像增强等操作,如去除噪声、边缘检测等。
总结起来,Matlab中的傅里叶变换是一种强大的信号处理工具,通过将信号从时域转换到频域,可以实现频谱分析、滤波器设计、图像处理等应用。
实验用MATLAB计算傅里叶变换

实验二 用MATLAB 计算傅立叶变换(2课时)一、实验目的1、掌握用MA TLAB 计算DTFT 及系统频率响应的方法。
2、掌握用MA TLAB 计算DFT 和IDFT 的方法。
3、掌握用DFT 计算圆周卷积和线性卷积的方法。
二、实验设备计算机一台,装有MATLAB 软件。
三、实验原理和基本操作1.用MA TLAB 计算DTFT对于序列x (n ),其离散时间傅立叶变换(DTFT )定义为:∑∞-∞=-=n n j e n x j X ωω)()( (1)序列的傅立叶变换(DTFT )在频域是连续的,并且以ω=2π为周期。
因此只需要知道jw X(e )的一个周期,即ω=[0,2π],或[-π,π]。
就可以分析序列的频谱。
用MA TLAB 计算DTFT ,必须在-π≤ω≤π范围内,把ω用很密的、长度很长的向量来近似,该向量中各个值可用下式表示: w=k*dw=k*K π2 (2) 其中:d ω=Kπ2 称为频率分辨率。
它表示把数字频率的范围2π均分成K 份后,每一份的大小,k 是表示频率序数的整数向量,简称为频序向量,它的取值可以有几种方法:通常在DTFT 中,频率取-π≤ω<л的范围,当K 为偶数时,取 k 12,,1,0,1,,12,2--+--=K K K 如果K 为奇数,则取 k 5.02,,1,0,1,,5.02--+-=K K 可以为奇偶两种情况综合出一个共同的确定频序向量k 的公式; k=12K -⎢⎥-⎢⎥⎣⎦ :12K -⎢⎥⎢⎥⎣⎦(3) 上式中⎢⎥⎣⎦表示向下取整。
在MA TLAB 中的向下取整函数为floor ,floor (x )的作用是把x 向下(向-∞方向)取整,所以与(3)式等价的MATLAB 语句为 k ))5.02(:)5.02((-+-=K K floor (4) 给定了输入序列(包括序列x 及其位置向量n ),又设定了频率分辨率d ω及频序向量k ,则DTFT 的计算式(1)可以用一个向量与矩阵相乘的运算来实现。
matlab实现傅里叶变换

matlab实现傅里叶变换傅里叶变换是一种将一个连续时间函数(或离散时间函数)分解成基函数的超级工具。
它的用途非常广泛,例如在信号处理、音频处理、图像处理、机器学习等领域都有重要的应用。
在这篇文章中,我将介绍使用 MATLAB 实现傅里叶变换的基本步骤。
一、MATLAB 傅里叶变换函数在 MATLAB 中,我们可以使用 fft 函数实现傅里叶变换。
FFT 表示快速傅里叶变换,是一种高效的算法,可以在很短的时间内计算出信号的频域表示。
下面是 fft 函数的基本语法:X = fft(x)其中 x 是输入信号,X 是输出信号的频域表示。
由于傅里叶变换是一个复杂的计算过程,输入信号需要满足一些条件。
这些条件将在下一节中讨论。
在进行傅里叶变换之前,我们需要确保输入信号满足一些条件,以便 fft 函数可以正确地执行。
这些条件包括以下要求:1. 信号长度为 2 的正整数次幂在傅里叶变换中,信号长度通常是 2 的正整数次幂,例如 2、4、8、16、32 等等。
如果信号长度不是 2 的正整数次幂,则 fft 函数将自动进行填充。
2. 离散时间信号需要零填充如果输入信号是离散时间信号,我们需要使用零填充的方法将信号长度补齐至 2 的正整数次幂。
例如,如果我们的离散时间信号包含 100 个样本,我们需要将其补齐至128 个样本(下一个最小的 2 的正整数次幂)。
3. 连续时间信号需要采样如果输入信号是连续时间信号,我们需要对其进行采样,以便将其转换为离散时间信号。
采样频率需要高于信号的最高频率,这样才能避免混叠现象的发生。
下面是一个简单的示例,其中我将展示如何使用 MATLAB 实现傅里叶变换。
假设我们有一个正弦波信号,频率为 10 Hz,并将其采样为 100 个样本。
我们可以定义该信号如下:Fs = 100; % 采样频率T = 1/Fs; % 采样周期L = 100; % 信号长度t = (0:L-1)*T; % 时间向量f = 10; % 信号频率x = sin(2*pi*f*t); % 正弦波信号我们可以使用 plot 函数绘制该信号:plot(t,x)xlabel('Time (s)')ylabel('Amplitude')title('Original Signal')现在我们可以将该信号传递给 fft 函数,并将频域表示存储在 X 变量中:由于傅里叶变换输出的是一个复数数组,因此我们需要使用 abs 函数计算幅度谱并将其绘制出来:P2 = abs(X/L);P1 = P2(1:L/2+1);P1(2:end-1) = 2*P1(2:end-1);f = Fs*(0:(L/2))/L;plot(f,P1)xlabel('Frequency (Hz)')ylabel('Amplitude')title('Frequency Spectrum')幅度谱显示了信号在频域中的分布情况,显示了信号的频率成分及其振幅。
matlab光谱傅里叶变换提取相位

MATLAB光谱傅里叶变换提取相位1. 傅里叶变换的基本概念傅里叶变换是一种重要的数学工具,它可以将一个函数从时间或空间域转换到频率域。
在信号处理和图像处理领域,傅里叶变换被广泛应用于频谱分析、滤波、特征提取等任务中。
傅里叶变换分为傅里叶正变换和傅里叶逆变换,在MATLAB中,我们可以使用fft函数进行傅里叶变换。
2. MATLAB中的光谱分析光谱分析是一种常见的信号处理技术,它可以帮助我们理解信号的频域特性。
在MATLAB中,我们可以使用fft函数对信号进行傅里叶变换,从而得到信号的频谱信息。
对于频谱分析,我们可以通过傅里叶变换来提取信号的幅度和相位信息。
在信号处理中,相位信息同样重要,它包含了信号的时序特性和波形信息。
3. 提取相位信息的重要性在光谱分析中,提取相位信息是一项重要的任务。
相位信息包含了信号的周期性和波形的具体形状,它对信号的重建和波形恢复具有关键作用。
在处理周期性信号或波形重建的任务中,我们常常需要从傅里叶变换的结果中提取相位信息。
4. MATLAB中提取相位信息的方法在MATLAB中,我们可以使用angle函数来提取信号的相位信息。
angle函数可以计算复数的幅角,对于傅里叶变换得到的复数结果,我们可以利用angle函数来提取其相位信息。
我们还可以使用unwrap函数来对提取的相位信息进行展开,从而得到连续的相位曲线。
5. 示例分析:MATLAB光谱傅里叶变换提取相位假设我们有一个周期性正弦信号,我们需要对其进行光谱分析并提取其相位信息。
我们可以使用fft函数对信号进行傅里叶变换,得到其频谱信息。
我们可以使用angle函数提取频谱中每个频率点的相位信息,并利用unwrap函数对相位信息进行展开。
我们可以将提取的相位信息进行可视化,以便更直观地理解信号的相位特性。
6. 个人观点在光谱分析中,提取相位信息是一项重要而复杂的任务。
MATLAB提供了丰富的函数和工具来辅助我们进行相位信息的提取和分析。
MATLAB实验傅里叶分析

实验七 傅里叶变换一、实验目的傅里叶变换是通信系统、图像处理、数字信号处理以及物理学等领域内的一种重要的数学分析工具。
通过傅里叶变换技术可以将时域上的波形分 布变换为频域上的分布,从而获得信号的频谱特性。
MA TLAB 提供了专门的函数fft 、ifft 、fft2(即2维快速傅里叶变换)、ifft2以及fftshift 用于实现对信号的傅里叶变换。
本次实验的目的就是练习使用fft 、ifft 以及fftshift 函数,对一些简单的信号处理问题能够获取其频谱特性(包括幅频和相频特性)。
二、实验预备知识1. 离散傅里叶变换(DFT)以及快速傅里叶变换(FFT)简介设x (t )是给定的时域上的一个波形,则其傅里叶变换为2()() (1)j ft X f x t e dt π∞--∞=⎰显然X ( f )代表频域上的一种分布(波形),一般来说X ( f )是复数。
而傅里叶逆变换定义为:2()() (2)j ft x t X f e df π∞-∞=⎰因此傅里叶变换将时域上的波形变换为频域上的波形,反之,傅里叶逆变换则将频域上的波形变换为时域上的波形。
由于傅里叶变换的广泛应用,人们自然希望能够使用计算机实现傅里叶变换,这就需要对傅里叶变换(即(1)式)做离散化处理,使之符合电脑计算的特征。
另外,当把傅里叶变换应用于实验数据的分析和处理时,由于处理的对象具有离散性,因此也需要对傅里叶变换进行离散化处理。
而要想将傅里叶变换离散化,首先要对时域上的波形x (t )进行离散化处理。
采用一个时域上的采样脉冲序列:δ (t -nT ), n = 0, 1, 2, …, N -1;可以实现上述目的,如图所示。
其中N 为采样点数,T 为采样周期;f s = 1/T 是采样频率。
注意采样时,采样频率f s 必须大于两倍的信号频率(实际是截止频率),才能避免混迭效应。
接下来对离散后的时域波形()()()()x t x t t nT x nT δ=-=的傅里叶变换()X f 进行离散处理。
图像处理之傅里叶变换matlab实现

傅里叶变换一.实验内容:1、傅里叶变换二.实验目的:1、理解傅里叶变换的原理2、掌握傅里叶变换的性质三.实验步骤:1.首先构造一幅黑白二值图像,在128×128的黑色背景中心产生一个4×4的白色方块,对其进行傅里叶变换;(Matlab 中用fft2实现2D 傅里叶变换)2.把低频分量移到图象中心,而把高频分量移到四个角上;(方法有两种:其一,在FT 以前对测试图象逐点加权(-1)^(i+j);其二,利用FFTSHIFT 函数);3.利用图象增强中动态范围压缩的方法增强2DFT ;(Y =C*log (1+abs (X)));4.构造一幅黑白二值图像,在128×128的黑色背景中令第32行至36行、第32列至第36列的值为1(即产生一个4×4的白色方块),对其进行傅里叶变换;5.将上图旋转300,再进行傅里叶变换 (imrotate )6.构造二幅黑白二值图像,在128×128的黑色背景中分别令第60行至68行、第60列至第68列的值为1,第64行至65行、第64列至第65列的值为1产生两幅图像,分别对这两幅图像进行傅里叶变换四、原理分析、技术讨论、回答问题1、对于第二幅图像(第一步与第四步图像的比较),说明FOURIER 变换具有以下性质:)//(20000),(),(N vy M ux j e v u F y y x x f +-⇔--π2、对于第三幅图像(第一步与第五步图像的比较),说明FOURIER 变换具有以下性质:θcos r x = θs i n r y = αωc o s =u αωs i n =v),(),(00θαωθθ+⇔+F r f3、对于第四幅图像(第一步与第六步图像的比较),说明FOURIER 变换具有以下性质:)/,/(||1),(b v a u F ab by ax f =五、结果如下六、M文件如下:a=zeros(128,128);a(63:66,63:66)=1;A=fft2(a);b=fftshift(A);for i=1:128for j=1:128B(i,j)=log(1+abs(A(i,j)));endendh=zeros(128,128);h(32:36,32:36)=1;H=fft2(h);h1=imrotate(h,30);H1=fft2(h1);i=zeros(128,128);i(60:68,60:68)=1;I=fft2(i);j=zeros(128);j(64:65,64:65)=1;J=fft2(j);figure;subplot(221),imshow(a);title('原图');subplot(222),imshow(A);title('FT');subplot(223),imshow(b);title('低中高角FT'); subplot(224),imshow(B);title('增强2DFT');figure;subplot(221);imshow(a);title('Step 1原图'); subplot(222);imshow(A);title('Step 1FT'); subplot(223);imshow(h);title('Step 4原图'); subplot(224);imshow(H);title('Step 4FT');figure;subplot(221),imshow(a);title('Step 1原图'); subplot(222),imshow(A);title('Step 1FT'); subplot(223),imshow(h1);title('Step 5原图'); subplot(224),imshow(H1);title('Step 5FT');figure;subplot(321);imshow(a);title('Step 1原图'); subplot(322);imshow(A);title('Step 1FT'); subplot(323),imshow(i);title('Step 6原图1'); subplot(324),imshow(I);title('Step 6原图1FT'); subplot(325),imshow(j);title('Step 6原图2'); subplot(326),imshow(J);title('Step 6原图2FT');。
matlab如何做傅里叶变换

matlab如何做傅里叶变换Matlab是一款高级的计算机可视化程序,具有强大的图形和数据处理功能。
它可以帮助你快速处理大量数据,并进行准确的分析。
Matlab中的傅里叶变换(FFT)是用于分析数字信号(如声音或图像)的有用工具,它将时域信号转换为频域信号。
FFT可以显示出信号中每一段的频率、幅度和相位,从而可以反映出信号的构成成分。
在Matlab中,可以使用fft()函数来计算信号的傅里叶变换。
假设要对一段持续时间为T的实信号X(t)做FFT变换,首先要定义变换的采样频率fs,然后构造一个长度为N(N>T*fs)的数组x,填充X(t)的采样点,其中x[k] = X(k/fs)。
在Matlab中,可以使用linspace()函数快速生成x。
之后使用fft()来计算X(t)的FFT:y = fft(x);在此调用后,y数组就会保存有X(t)的FFT结果,它的长度为N,其中y[k]表示X(t)在频率为k/T的Fourier系数。
对于对称的实信号,Matlab还提供了一种快速的FFT实现——fftshift()函数,它可以快速计算一维实信号的FFT,省去了上述步骤所需的构造数组和调用fft()函数的时间。
要使用fftshift(),只需要调用函数fftshift(X)即可,其中X是X(t)的采样点。
总之,Matlab中的FFT工具可用于快速分析信号,方法简单便捷。
可以通过fft()和fftshift()函数快速获得信号的频谱,其结果可以反映出信号的频率、幅度和相位。
Matlab中的FFT功能可以为你的信号处理工作带来很大的方便。
Matlab技术傅里叶变换

Matlab技术傅里叶变换引言傅里叶变换是一种在信号处理和图像处理领域广泛应用的数学工具。
通过傅里叶变换,我们可以将一个信号或图像分解为不同频率的分量,从而更好地理解信号或图像的特性。
在实际应用中,Matlab是一个功能强大的工具,用于实现傅里叶变换和信号处理。
本文将介绍Matlab中傅里叶变换的基本原理、实现方法以及一些实际应用案例。
一、傅里叶变换的基本原理傅里叶变换是一种将一个函数或信号表示为频率分量的工具。
它可以将一个时域函数转换为频域函数,从而得到不同频率分量的振幅和相位信息。
在数学上,傅里叶变换将一个函数f(t)表示为连续频谱的形式,即F(ω),其中ω为频率。
傅里叶变换的基本公式如下:F(ω) = ∫f(t)e^(-jωt)dt其中,F(ω)表示频域函数,f(t)表示时域函数,j表示虚数单位,ω表示频率,e 为自然对数的底。
二、Matlab中傅里叶变换的实现方法在Matlab中,傅里叶变换可以通过fft函数来实现。
fft函数是Fast Fourier Transform的缩写,是一种快速傅里叶变换算法。
使用fft函数,我们可以方便地进行信号的频域分析。
具体实现步骤如下:1. 准备输入信号数据。
在Matlab中,可以通过向量或矩阵的形式表示一个信号。
2. 调用fft函数进行傅里叶变换。
输入参数为信号数据,输出结果为频域函数。
3. 对频域函数进行处理和分析。
可以进行滤波、频谱分析等操作。
4. 反傅里叶变换。
如果需要将频域函数转换回时域函数,可以使用ifft函数。
通过以上步骤,我们可以方便地实现对信号的傅里叶变换和频域分析。
三、实际应用案例傅里叶变换在信号处理和图像处理领域有着广泛的应用。
下面将介绍几个实际案例,展示了傅里叶变换的实际应用。
1. 音频信号处理音频信号是一种由不同频率的声波组成的信号。
通过傅里叶变换,我们可以将音频信号分解为不同频率分量的振幅和相位。
这使得我们能够实现音频信号的滤波、频谱分析和降噪等操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
光学图像处理实验报告学生姓名:班级:学号:指导教师:日期:一、实验室名称:二、实验项目名称: 图像变换三、实验原理:傅立叶变换是信号处理领域中一个重要的里程碑,它在图像处理技术中同样起着十分重要的作用,被广泛的应用于图像特征提取、图像增强与恢复、噪声抑制、纹理分析等多个方面。
1、离散傅立叶变换(DFT ):要把傅立叶变换应用到数字图像处理当中,就必须处理离散数据,离散傅立叶变换的提出使得这种数学方法能够和计算机技术联系起来。
正变换:逆变换:幅度:相位角:功率谱:2、快速傅立叶变换(FFT ): 离散傅立叶变换运算量巨大,计算时间长,其运算次数正比于N^2,当N 比较大的时候,运算时间更是迅速增长。
二快速傅立叶变换的提出将傅立叶变换的复杂度由N^2下降到了NlgN/lg2,当N 很大时计算量可大大减少。
而快速傅立叶变换(FFT)需要进行基2或者基4的蝶形运算,算法上面较离散傅立叶变换困难。
∑∑-=-=+-=1010)//(2),(1),(M x N y N vy M ux j e y x f MN v u F π∑∑-=-=+=1010)//(2),(),(M x N y N vy M ux j e v u F y x f π3、离散余弦变换(DCT):为FT 的特殊形式,被展开的函数是实偶函数的傅氏变换,即只有余弦项。
变换核固定,利于硬件实现。
具有可分离特性,一次二维变换可分解为两次一维变换。
正变换:逆变换:其中:四、实验目的:1. 了解各种图像正交变换的作用和用途;2. 掌握各种图像变换的方法和原理;3. 熟练掌握离散傅立叶变换(DFT)、离散余弦变换(DCT)的原理、方法和实现流程,熟悉两种变换的性质,并能对图像傅立叶变换的结果进行必要解释;4. 熟悉和掌握利用Matlab 工具进行图像傅立叶变换及离散余弦变换的基本步骤、MATLAB 函数使用及具体变换处理流程;5. 能熟练应用Matlab 工具对图像进行FFT 及DCT 处理,并能根据需要进行必要的频谱分析和可视化显示。
五、实验内容:1、读取以下两幅图像,分别对其进行离散傅立叶变换(FFT)。
变换处理中,要求进行频谱原点平移到(0,0),并能分别显示出其2D 频谱图。
通过对变换结果的分析,可以看出变换结果满足傅立叶变换(FT )的什么性质。
2、任意读取一幅灰度图像,对其进行FFT 变换,变换结果要求分别展示其64×64、128×128、256×256 的频谱图(注:为便于分析,要求变换结果的频率原点移动到(0.0)),且对64×64 频谱图能进行3D 显示。
3、任意读取一幅灰度图像,对其进行DCT 变换。
变换处理过程要求利用正交变换矩阵法及matlab 的dct2()函数两种方法分别进行,并对变换结果进行比较和分析。
六、实验器材(设备、元件):()()()()⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+=∑∑-=-=N y v N x u y x f v c u c v u F N x N y c 212cos 212cos ,)()(,1010ππ∑∑-=-=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+=10102)12(cos 2)12(cos ),()()(),(N u N v c N v y N u x F y c x c y x f ππυμ⎪⎩⎪⎨⎧-≤≤==11201)(N k N k N k c计算机,Matlab软件七、实验步骤:1、快速傅立叶变换(FFT):⑴打开计算机,进入Matlab程序。
⑵画出程序设计流程图(图一),在Matlab中输入代码读取各图像。
⑶将两图分别转换成灰度图像。
⑷FFT变换,并将中心平移。
⑸将平移后矩阵取实部,归一化显示在同一窗口中。
⑹记录下图像,并对结果进行分析。
图一图二图三2、64X64,128X128,256X256 FFT变换:⑴接着上一实验,画出程序设计流程图(图二),在Matlab中输入代码。
⑵读取一幅大小合适的灰度图像。
⑶对图像分别经行64X64,128X128,256X256 FFT变换,并将中心平移。
⑷将平移后图像取实部,归一化之后显示在同一窗口中。
⑸显示64X64的3D FFT图像,记录图像,并对结果进行分析。
3、DCT离散余弦变换:⑴画出程序设计流程图(图三),在Matlab中输入代码。
⑵读取一幅大小合适的灰度图像。
⑶对图像分别调用Matlab内函数进行DCT直接变换和用正交矩阵进行变换。
⑷分别显示变换后图像。
⑸记录图像,并对结果进行分析。
八、实验结果及分析1、快速傅立叶变换FFT:其源代码为:clear;>> oimg1=imread('cameraman.tif');>> oimg2=imread('coins.png');>> temp1=fft2(oimg1);>> temp2=fft2(oimg2);>> newimg1=fftshift(temp1);>> newimg2=fftshift(temp2);>> A1=double(real(newimg1));>> B1=double(imag(newimg1));>> A2=double(real(newimg2));>> B2=double(imag(newimg2));>> last1=sqrt(A1.^2+B1.^2);>> last2=sqrt(A2.^2+B2.^2);>> newimg1=(last1/max(max(last1)))*100;>> newimg2=(last2/max(max(last2)))*100;>> subplot(2,2,1)>> imshow(oimg1)>> subplot(2,2,2)>> imshow(newimg1)>> subplot(2,2,3)>> imshow(oimg2)>> subplot(2,2,4)>> imshow(newimg2)其显示的结果为:分析:将两幅图先转化为灰度图像,然后将其进行FFT变换,中心平移,取实部,归一化显示在同一窗口上,得结果如上。
2、64X64,128X128,256X256 FFT变换:其源代码为:clear;>> oimg3=imread('cameraman.tif');>>>> temp3=fft2(oimg3,64,64);>> newimg3=fftshift(temp3);>> A3=double(real(newimg3));>> B3=double(imag(newimg3));>> last3=sqrt(A3.^2+B3.^2);>> newimg6464=(last3/max(max(last3)))*255;>>>> temp3=fft2(oimg3,128,128);>> newimg3=fftshift(temp3);>> A3=double(real(newimg3));>> B3=double(imag(newimg3));>> last3=sqrt(A3.^2+B3.^2);>> newimg128128=(last3/max(max(last3)))*255;>>>> temp3=fft2(oimg3,256,256);>> newimg3=fftshift(temp3);>> A3=double(real(newimg3));>> B3=double(imag(newimg3));>> last3=sqrt(A3.^2+B3.^2);>> newimg256256=(last3/max(max(last3)))*255;>>>> figure,subplot(2,2,1)>> imshow(oimg3)>> subplot(2,2,2)>> imshow(newimg6464)>> subplot(2,2,3)>> imshow(newimg128128)>> subplot(2,2,4)>> imshow(newimg256256)>>>> [x,y]=meshgrid(-32:31,-32:31);>> figure,surf(x,y,newimg6464)其显示的结果为:分析:读取灰度图像,对图像分别经行64X64,128X128,256X256 FFT变换,并将中心平移。
将平移后图像取实部,归一化之后显示在同一窗口中。
然后再显示64X64的3D FFT图像,记录图像,3D图像的中间部分向上凸起,得结果如上。
3、DCT变换:其源代码为:clear>> B=imread('cameraman.tif');>> dct=dct2(B);>> figure, imshow(B);>> figure, imshow(dct);>> figure>> imshow(log(abs(dct)),[]),colormap(jet(64)),colorbar>> A=im2double(imread('cameraman.tif'));>> P=dctmtx(size(A,1));>> dct=P*A*P';>> figure>> imshow(dct)其显示的结果为:分析:读取灰度图像,对图像分别调用Matlab内函数进行DCT直接变换和用正交矩阵进行变换。
分别显示变换后图像。
得结果如上。
九、总结实验结论:将图像分别进行快速FFT变换、64X64,128X128,256X256 FFT变换、dct变换得结果如上,这三种变换方法在图像变换中是非常重要的变换方法。
十、思考题:1、图像的傅立叶变换有哪些性质,它在图像处理中有什么作用?答:图像的傅立叶变换能把图像从空域转变成频域,并把频谱显示出来。