基于多级小波变换的自定义图像融合系统
项目简介
本项目是一个基于 MATLAB 环境完全自主开发的图像融合处理系统。核心算法依托于离散小波变换(DWT)理论,旨在解决多聚焦图像或多模态图像的信息互补问题。系统能够将两幅具有不同清晰区域的源图像,通过频域分析与合成,融合成一幅全局清晰、信息量更丰富的高质量图像。
程序设计采用了模块化结构,集成了数据模拟生成、全流程小波融合算法、性能评估指标计算以及多维度的可视化展示功能。该项目适用于图像处理领域的算法验证、学术研究及教学演示。
功能特性
- 多级小波分解架构:代码默认采用 'db4'(Daubechies 4)小波基,支持 3 层(或自定义层数)的分解深度,能够在不同分辨率尺度上精细捕捉图像特征。
- 自适应频带融合策略:针对小波变换后的不同频率分量采用了差异化的融合规则(低频加权平均、高频最大绝对值),有效平衡了图像的轮廓保持与细节增强。
- 自动化测试数据生成:内置图像合成模块,利用 MATLAB 内置图像自动生成具有模拟多聚焦效果(左侧清晰/右侧清晰)的测试图对,无需外部数据即可直接运行验证。
- 多维度结果可视化:提供包含源图像、融合结果、差值残差图、小波系数能量谱以及局部细节放大图的综合展示界面。
- 客观评价指标:自动计算均方根误差(RMSE),定量评估融合图像相对于原始全清晰图像的质量差异。
系统要求
- MATLAB R2016a 或更高版本
- Image Processing Toolbox(图像处理工具箱)
- Wavelet Toolbox(小波工具箱)
核心算法与实现逻辑
本项目的主程序 main.m 包含完整的处理流水线,其具体实现逻辑如下:
1. 系统初始化与参数配置
程序首先清理工作区环境,并设定关键的小波变换参数。默认配置选用
db4 小波作为基函数,分解层数设定为
3层,以获得足够的频域分辨率。
2. 模拟多聚焦图像生成
为了保证代码的独立运行能力,程序通过以下步骤自动合成测试数据:
- 读取 MATLAB 内置的
cameraman.tif 作为原始全清晰基准图 (source_global)。 - 使用高斯滤波器 (
fspecial gaussian) 生成模糊版本的图像。 - 构建左右两个互补的掩膜(Mask),并通过均值滤波对掩膜边缘进行平滑处理,以模拟自然的光学散焦过渡,避免生硬的拼接痕迹。
- 将清晰图像与模糊图像按掩膜权重叠加,生成两幅源图像:图A(左清右模糊) 和 图B(右清左模糊)。
3. 多级小波融合核心 (wavelet_fusion_core)
这是系统的核心处理模块,严格按照各类频带的特性进行处理:
- 分解阶段:调用
wavedec2 对两幅源图像进行 3 层小波分解,获取各自的低频近似系数(Approximation)和多层高频细节系数(Details)。 - 低频融合规则:
* 低频系数代表图像的主要能量和轮廓。
*
实现策略:采用
加权平均法(0.5 * A + 0.5 * B)。这种方法能有效抑制背景噪声,保持图像整体亮度和对比度的稳定性。
* 高频系数包含边缘、纹理等细节信息。程序对 3 层分解中的每一层(水平、垂直、对角线方向)分别进行处理。
*
实现策略:采用
最大绝对值法(Max Absolute)。程序比较两幅源图像对应位置系数的绝对值大小,构建选择矩阵,保留绝对值较大的系数。这确保了融合图像能够继承源图像中最显著的边缘特征和清晰度。
- 重构阶段:将融合后的低频系数与各层融合后的高频系数重新组合,调用
waverec2 执行小波逆变换,重构出最终的融合图像,并对数值范围进行归一化截断(Clamping to [0, 1])以防止溢出。
4. 性能评估与可视化 (visualize_results)
程序在融合完成后执行详细的结果展示和评估:
* 并列显示源图像 A、源图像 B 和最终融合图像。
* 计算并显示融合图像与源图像的
差异图(Difference Map),通过对比度增强直观展示融合过程中保留了哪些区域的信息。
* 提取第 1 层的高频细节系数(H/V/D 分量),经对数变换和归一化后,使用 Jet 色图绘制
系数能量分布图,直观呈现高频信息的空间分布。
* 单独弹出一个窗口,截取图像中心区域(61x61 像素),放大展示源图像与融合图像的纹理细节,便于人眼主观评价清晰度恢复情况。
* 利用原始全清晰图像作为参考(Ground Truth),计算融合图像的均方根误差,并在控制台输出,作为客观评价指标。
使用方法
- 将包含代码的
main.m 文件放置于 MATLAB 的当前工作路径中。 - 直接运行
main 函数。 - 程序将自动生成测试数据,执行融合算法,并弹出两个可视化窗口展示结果。
- MATLAB 命令窗口(Command Window)将输出具体的执行耗时以及 RMSE 评价指标数值。