实验六 图像的傅立叶变换

一.实验目的

1了解图像变换的意义和手段;

2熟悉傅立叶变换的基本性质;

3熟练掌握FFT变换方法及应用;

4通过实验了解二维频谱的分布特点;

5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。

6评价人眼对图像幅频特性和相频特性的敏感度。

二.实验内容

1. 将图像内容读入内存;

2. 用Fourier变换算法,对图像作二维Fourier变换;

3. 将其幅度谱进行搬移,在图像中心显示;

4. 用Fourier系数的幅度进行Fourier反变换;

5. 用Fourier系数的相位进行Fourier反变换;

6. 比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。

7. 记录和整理实验报告。

三.实验程序、实验结果与实验分析

1.实验程序

复制代码
I = imread('Lenna.jpg');

I_gray = rgb2gray(I);

figure;

subplot(2, 2, 1);

imshow(I);

title('原始图像');

F = fft2(double(I_gray));

F_shifted = fftshift(F);

amplitude_spectrum = log(1 + abs(F_shifted));

subplot(2, 2, 2);

imshow(amplitude_spectrum, []);

title('幅度谱');

reconstructed_amplitude = ifft2(abs(F));

reconstructed_phase = ifft2(exp(1i * angle(F)));

subplot(2, 2, 3);

imshow(mat2gray(abs(reconstructed_amplitude)));

title('使用幅度谱的反变换结果');

subplot(2, 2, 4);

imshow(mat2gray(abs(reconstructed_phase)));

title('使用相位谱的反变换结果');

2.实验结果

3.实验分析

①读取图像,转换为灰度图像以简化处理

复制代码
I = imread('Lenna.jpg');

I_gray = rgb2gray(I);

②用Fourier变换算法对图像作二维Fourier变换

复制代码
F = fft2(double(I_gray));

③将幅度谱进行搬移,在图像中心显示

复制代码
F_shifted = fftshift(F);

amplitude_spectrum = log(1 + abs(F_shifted));

④显示幅度谱

复制代码
subplot(2, 2, 2);

imshow(amplitude_spectrum, []);

title('幅度谱');

⑤用Fourier系数的幅度进行Fourier反变换

复制代码
reconstructed_phase = ifft2(exp(1i * angle(F)));

⑥用Fourier系数的相位进行Fourier反变换

复制代码
reconstructed_phase = ifft2(exp(1i * angle(F)));

⑦显示幅度谱反变换结果

复制代码
subplot(2, 2, 3);

imshow(mat2gray(abs(reconstructed_amplitude)));

title('使用幅度谱的反变换结果');

⑧显示相位谱反变换结果

复制代码
subplot(2, 2, 4);

imshow(mat2gray(abs(reconstructed_phase)));

title('使用相位谱的反变换结果');

四.思考题

1.傅里叶变换有哪些重要的性质?

  • 线性性:傅里叶变换是线性的,即对于任意标量α和β以及函数f(x)和g(x),有F(αf(x) + βg(x)) = αF(f(x)) + βF(g(x))。
  • 平移性:如果f(x)的傅里叶变换是F(u),则f(x - x0)的傅里叶变换是F(u) * exp(-i2πux0)。
  • 对称性:实函数的傅里叶变换具有对称性,即实函数的傅里叶变换的实部是偶函数,虚部是奇函数。
  • 频率域的微分:对于函数f(x)和其傅里叶变换F(u),其导数在频率域上的傅里叶变换是iuF(u)。
  • 卷积定理:傅里叶变换将卷积操作转换为点乘操作,即f(x) * g(x)的傅里叶变换是F(u)G(u)。

2.图像的二维频谱在显示和处理时应注意什么?

  • 频率域中心化:在显示二维频谱时,通常会对其进行中心化处理,以使低频成分位于图像中心,而高频成分位于图像边缘。这有助于更直观地理解图像的频率特性。
  • 对数变换:频谱的幅度经常采用对数变换进行显示,以增强低幅度的频率分量,使其更易于观察。
  • 振铃效应:频谱显示中的振铃效应可能会影响图像的解释。这是由于在图像边界处存在突变,导致频谱中的高频成分较多。在处理图像时,应该注意这种效应,以避免不必要的影响。
  • 信息丢失:频谱显示通常只显示了频率分量,而丢失了图像的空间信息。因此,在处理图像时,必须考虑到这一点,以确保不会丢失关键的空间信息。
相关推荐
小程故事多_8021 小时前
从A2C、TRPO、PPO到GRPO,强化学习策略梯度算法完整演进与大模型落地实战解析
人工智能·算法
郝旭帅电子设计团队1 天前
图像处理是什么
图像处理·fpga开发·郝旭帅电子设计团队·郝旭帅
2601_956121971 天前
二分算法(知识点+题目)
c++·算法
格林威1 天前
多相机微秒级对齐:硬件触发 vs PTP(IEEE 1588)方案实战对比
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉
青春不败 177-3266-05201 天前
MATLAB在生态环境数据处理与分析
matlab·生态学·遥感·生态系统服务·数据处理·环境科学
WangYan20221 天前
MATLAB/Meta分析/R语言/贝叶斯方法/piecewiseSEM结构方程模型在生态环境数据处理与分析中的应用
matlab·meta分析·生态环境·结构方程模型·贝叶斯方法
AndrewHZ1 天前
【LLM技术全景】阶段总结:技术原理篇核心知识回顾
人工智能·深度学习·算法·语言模型·大模型·llm·芯片开发
古一木1 天前
opencv 形态学操作
人工智能·opencv·计算机视觉
小星星闪亮登场1 天前
2026萌新联赛第三场-- (郑州轻工业大学)
数据结构·c++·经验分享·算法·贪心算法·排序算法·深度优先
冻柠檬飞冰走茶1 天前
PTA基础编程题目集 7-8超速判断(C++语言实现)
开发语言·数据结构·c++·算法