数字图像处理实验三:图像的频域处理

更新时间:2024-07-02 06:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字图像处理实验报告

实验三、图像的频域处理

一、实验类型:综合性实验 二、实验目的

1. 掌握二维傅里叶变换的原理。 2. 掌握二维傅里叶变换的性质。

三、实验设备:安装有MATLAB 软件的计算机 四、实验原理

傅里叶变换在图像增强、图像分析、图像恢复和图像压缩等方面扮演 着重要的角色。在计算机上使用傅里叶变换常常涉及到该变换的另一种形 式——离散傅里叶变换(DFT )。使用这种形式的傅里叶变换主要有以下两 方面的理由:

·DFT 的输入和输出都是离散的,这使得计算机处理更加方便; ·求解DFT 问题有快速算法,即快速傅里叶变换(FFT )。

MATLAB 函数fft,fft2 和fftn 可以实现傅里叶变换算法,分别用来计算 1 维DFT、2 维DFT 和n 维DFT。函数ifft,ifft2 和ifftn 用来计算逆DFT。 下面结合一个例子进行演示。

(1)创建一个矩阵f,代表一个二值图像。 f=zeros(30,30); f(5:24,13:17)=1;

imshow(f,’notruesize’)

(2 )用以下命令计算f 的DFT 并可视化。 F=fft2(f);

F2=log(abs(F));

imshow(F2,[-1 5],’notruesize’);colormap(jet);colorbar

(3)为了获取傅里叶变换的更佳的取样数据,计算F 的DFT 时给它进行0 填充。0 填充和DFT 计算可以用下面的命令一步完成。 F=fft2(f,256,256);

上面的命令在计算DFT 之前将F 的大小填充为256 ×256。 imshow(log(abs(F)),[-1 5]);colormap(jet);colorbar

(4 )但是,0 频率系数仍然显示在左上角而不是中心位置。可以用

fftshift 函数解决这个问题,该函数交换F 的象限,使得0 频率系数位于中 心位置上。

F=fft2(f,256,256) F2=fftshift(F);

imshow(log(abs(F2)),[-1 5]);colormap(jet);colorbar 五、实验内容

选择一幅图像,对其进行离散傅立叶变换,观察离散傅立叶频谱,并 演示二维离散傅立叶变换的主要性质(如平移性、旋转性)。 六、实验步骤与结果

(1)创建一个矩阵f,代表一个二值图像。

f=zeros(60,60); f(10:48,26:34)=1; imshow(f,'notruesize') 得到二值图像f,如图所示:

(2 )用以下命令计算f 的DFT 并可视化。 F=fft2(f);

F2=log(abs(F));

imshow(F2,[-1 5],’notruesize’);colormap(jet);colorbar 得到没有0 填充的离散傅里叶变换,如图所示:

(3)为了获取傅里叶变换的更佳的取样数据,计算F 的DFT 时给它进行0 填充。0 填充和DFT 计算可以用下面的命令一步完成。 F=fft2(f,256,256);

上面的命令在计算DFT 之前将F 的大小填充为256 ×256。 imshow(log(abs(F)),[-1 5]);colormap(jet);colorbar 得到有0 填充的离散傅里叶变换,如图所示:

(4 )用 fftshift 函数交换F 的象限,使得0 频率系数位于中 心位置上。

F=fft2(f,256,256) F2=fftshift(F);

imshow(log(abs(F2)),[-1 5]);colormap(jet);colorbar 得到用fftshift 函数处理后的图像,如图所示:

本文来源:https://www.bwwdw.com/article/bnz.html

Top