首页/文章/ 详情

2-56 两张灰度图交换傅里叶相位后,重建图像究竟更像谁?

1小时前浏览0

MATLAB FFT 幅度谱 / 相位谱重组与频率域图像增强程序

一句话介绍: 这套 MATLAB 程序读取两张同尺寸灰度图,先通过二维傅里叶变换分别提取幅度谱和相位谱,再交换两幅图的相位信息并进行傅里叶反变换,观察“频率能量来自一幅图、空间结构来自另一幅图”时的重建效果;工程同时提供理想低通、高斯低通、高斯高通、高斯带阻和拉普拉斯等频域滤波函数,可继续用于图像平滑、频率抑制和细节增强实验。

先看它解决什么问题

一幅图像做完二维傅里叶变换后,并不是只得到一个“频谱图”,而是同时包含两类信息:幅度谱和相位谱。

真正值得观察的是:如果保留第一幅图的幅度谱,却换成第二幅图的相位谱,傅里叶反变换之后,重建图像到底会更像哪一幅?

当前工程正好把这个问题做成了一个很直观的实验:

beauty.jpg+CAT.jpg→fft2→ 分离幅度谱和相位谱 → 交叉重组 →ifft2→ 两幅融合重建图

工程里还准备了一套独立的频域滤波函数:

原始图像 → FFT → 频谱中心化 → 频域滤镜 → 反中心化 → IFFT → 归一化结果

因此,从源码来看,这个项目实际上包含两层内容:主脚本重点演示傅里叶幅度 / 相位重组,辅助函数则提供频率域图像增强的基础工具。

1. 当前工程里真正有哪些内容?

程序规模不大,主入口非常明确:c6s2.m 是当前工程唯一的顶层演示脚本。

文件

当前源码中的作用

c6s2.m

读取两张图像,完成 FFT、幅度 / 相位分离、交叉重组和反变换

imfreqfilt.m

通用频域滤波执行函数,把频域滤镜真正作用到图像上

imidealflpf.m

构造理想低通滤波器

imgaussflpf.m / imgaussfhpf.m

构造高斯低通 / 高通滤波器

imgaussfbrf.m

构造高斯带阻滤波器

imlapf.m

构造频域拉普拉斯滤波器


2. 当前程序处理的两张图像是什么?

工程自带的两幅输入都是灰度 JPEG 图像:

图像

分辨率

MATLAB 读入后的矩阵尺寸

内容

beauty.jpg

500 × 333 像素

333 × 500

灰度人物图像

CAT.jpg

500 × 333 像素

333 × 500

灰度猫图像

两幅图尺寸完全一致,因此可以直接交换对应频率位置上的幅度和相位信息,不需要先做缩放或裁剪。

主脚本首先执行 fft2:

Af = fft2(A)、Bf = fft2(B)

这里得到的不是最终图像,而是两幅图在二维频率域中的复数表示。

3. 傅里叶变换之后,为什么还要拆成幅度和相位?

一个二维傅里叶频率分量可以写成:

F(u,v) = M(u,v) · [cos φ(u,v) + i·sin φ(u,v)]

其中 M 是幅度,φ 是相位。

当前源码分别使用:

abs(F) → 提取幅度谱

angle(F) → 提取相位谱

因此 c6s2.m 得到了四组核心数据:人物图幅度谱、人物图相位谱、猫图幅度谱、猫图相位谱。

简单理解,幅度描述各类空间频率成分有多强,相位则保留这些频率成分之间的位置和对齐关系。

这也是后面交换相位后,图像主体结构会明显发生变化的原因。

4. 两幅图的频谱到底是怎样交换的?

当前程序并不是把两幅图直接相加,也不是做透明度叠加,而是重新组合傅里叶复数频谱。

第一组重建频谱使用:

人物幅度 + 猫的相位

对应关系为:

F_AR = M_A · [cos φ_B + i·sin φ_B]

第二组则反过来:

F_BR = M_B · [cos φ_A + i·sin φ_A]

随后分别执行二维傅里叶反变换:

AR = |IFFT2(F_AR)|

BR = |IFFT2(F_BR)|

于是程序真正研究的问题就变成了:

当幅度谱和相位谱分别来自不同图像时,哪一部分信息更决定重建图像“看起来像谁”?

5. 按当前两张图片重建后实际会看到什么?

按当前源码和工程自带图片进行等价复算,结果非常直观。

AR 使用的是人物图幅度谱 + 猫图相位谱。重建之后,猫的眼睛、鼻子、脸部轮廓仍然十分明显,而人物图原来的主体形状已经不再占主导。

BR 使用的是猫图幅度谱 + 人物图相位谱。重建图里人物的脸部、头发和身体轮廓重新变得清晰,虽然整体纹理和灰度分布受到猫图幅度谱影响,但空间结构明显更接近人物原图。

也就是说,当前这组实际输入给出了一个很有代表性的结果:

交换相位以后,重建图像的可辨识主体通常更接近“相位谱的来源图像”。

需要注意,这里说的是当前图片和当前算法下的重建现象。主程序没有计算 PSNR、SSIM、信息熵等图像质量指标,因此不能把它写成“增强精度提高了多少”。

6. 为什么相位对图像结构这么重要?

这一步不需要展开完整的傅里叶理论,只要抓住当前程序最关键的区别。

幅度谱主要告诉程序:低频、高频以及不同方向的频率成分分别有多强。

相位谱则决定这些不同频率成分在反变换时怎样彼此对齐。

一张脸之所以能形成眼睛、鼻子、嘴巴和轮廓,并不只是因为它含有哪些频率,而是因为这些频率必须以正确的位置关系组合起来。

因此当前实验可以直观理解为:

幅度谱更像“频率成分的配比”,相位谱更像“这些成分怎样排列成具体结构”。

这就是为什么保留人物幅度、换成猫相位之后,最终仍然能够辨认出猫的主体结构。

7. 工程里的频率域滤波增强函数又做了什么?

除了 c6s2.m,工程已经写好了通用的 imfreqfilt.m。

它的真实处理顺序是:

输入图像 → 必要时转灰度 →fft2→fftshift→ 与频域滤镜逐点相乘 →ifftshift→ifft2→ 取模 → 归一化

其中最关键的一步是:

频谱 × 频域滤镜

滤镜在哪些频率位置接近 1,就保留哪些频率;在哪些位置接近 0,就抑制对应频率。

工程提供的几类滤镜作用并不相同:

滤镜

关键参数

主要作用

理想低通

freq

直接保留截止频率以内的成分

高斯低通

sigma

平滑衰减高频,适合观察模糊和平滑效果

高斯高通

sigma

抑制低频、强调较高频率成分

高斯带阻

freq、width

抑制指定频率附近的一段频带

拉普拉斯频域滤镜

无额外参数

随频率半径增大而加强高频响应

例如高斯低通的核心关系可以简化为:

H_LP(D) = exp[-D²/(2σ²)]

高斯高通则直接采用:

H_HP(D) = 1 - H_LP(D)

这里的 D 表示频率位置到频谱中心的距离。

8. 为什么不能把这些滤波函数直接说成主程序已经完成的增强流程?

当前工程是:

傅里叶幅度 / 相位重组演示 + 一套可独立调用的频域增强函数库

如果需要真正测试高斯低通、高通等增强效果,应先构造与输入图像同尺寸的滤镜,再交给 imfreqfilt 处理。

这一区分很重要,因为它决定了按原工程直接运行时究竟能看到什么。

9. 这套程序适合用在哪里?

傅里叶图像处理教学

它很适合用于理解“幅度谱和相位谱分别保存什么信息”。两幅完全不同的真实图片交换相位后,结构变化比单看频谱公式直观得多。

频域滤波实验

工程已经提供理想低通、高斯低通、高斯高通、高斯带阻和拉普拉斯滤镜,可以在此基础上比较不同频率响应对平滑、细节和特定频带的影响。

图像增强算法前期验证

如果需要研究“先进入频率域,再选择性保留或抑制频率成分”的处理思路,这套代码可以作为一个简洁的离线实验基础。

它当前更适合教学、课程实验和离线算法验证,并不是带有自动评价、批量处理、实时摄像头输入或完整 GUI 的工程化图像增强平台。

10. 怎么运行这套程序?

运行:c6s2程序会读取两幅原图,完成傅里叶变换、幅度 / 相位交叉组合和反变换,并把原图与两幅重建结果放在同一个 subplot 窗口中比较。

当前源码的尺寸判断写成 if (size(I) ~= size(ff)),对只在一个维度上不一致的情况检查并不稳妥,因此实际实验时应主动保证尺寸一致;若维护源码,使用 ~isequal(size(I), size(ff)) 会更加明确。

11. 哪些参数最值得修改?

当前主脚本本身没有固定的滤波参数,真正值得实验的是输入图片以及辅助滤波函数暴露出来的几个频率参数。

参数

当前值

为什么值得改

调整后的主要影响

输入图像

beauty.jpg、CAT.jpg

决定幅度 / 相位交换的对象

换成同尺寸图像后,可观察不同结构和纹理之间的频域重组效果

sigma

调用时指定

控制高斯低通 / 高通的频率尺度

改变高频抑制或保留的范围

freq

调用时指定

是理想低通截止频率,也是带阻中心频率入口

直接改变被保留或抑制的频率区域

width

调用时指定

控制高斯带阻的阻带宽度

越大时受影响的频率范围相应变化

这些滤波函数没有在工程中给出统一默认参数,因此不能凭空指定一个“最佳 sigma”或“最佳截止频率”。实际使用时应根据图像尺寸、噪声频率和希望保留的细节进行实验。

12. 一句话看懂这个项目

这是一个 MATLAB 傅里叶图像处理与频域增强实验工程:主脚本c6s2.m读取两幅 500 × 333 灰度图,通过fft2分离幅度谱和相位谱,把人物幅度与猫相位、猫幅度与人物相位分别重组后执行ifft2,当前图片的等价复算结果能够直观看到重建主体结构明显跟随相位来源;工程同时提供理想低通、高斯低通、高斯高通、高斯带阻、拉普拉斯以及通用频域滤波函数,更适合用于傅里叶图像处理教学、频域滤波实验和离线图像增强方法验证。


来源:MATLAB学习与应用
通用MATLAB理论控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-10-27
最近编辑:1小时前
explicit-z
硕士 工种号:MATLAB学习与应用
获赞 212粉丝 79文章 338课程 5
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈