基于小波变换的数字水印嵌入系统
本项目实现了一个完整的数字图像水印嵌入方案,利用离散小波变换(DWT)的特性,将二值化的版权信息隐藏在灰度载体图像中。该系统通过在频域(小波域)修改系数,实现了隐蔽性强、可量化调节的数字水印处理流程,适用于版权保护和信息隐藏的基础研究。
功能特性
- 频域嵌入技术:采用离散小波变换(DWT)而非简单的空间域叠加,具有更好的隐蔽性和稳健性。
- 自动适配与归一化:系统具备载体图与水印图的尺寸一致性检测功能,并能自动完成水印的缩放与像素级匹配。
- 参数化调节:用户可自定义嵌入强度因子(alpha),在图像视觉质量(PSNR)与水印抵抗力之间寻找平衡。
- 量化性能评估:内置峰值信噪比(PSNR)计算模块,能够量化评估含水印图像相对于原图的失真程度。
- 全方位可视化:通过多子图界面同时展示原始图像、水印、小波分解子带、含水印图像以及嵌入后的误差分布。
- 质量变化模拟:自动模拟并绘制 PSNR 随嵌入强度变化的曲线图,直观展现水印强度对画质的影响。
系统要求
- 运行环境:MATLAB (推荐 R2016a 及以上版本)
- 依赖工具箱:图像处理工具箱 (Image Processing Toolbox)
实现逻辑与步骤
- 资源初始化与生成
程序首先定义基础参数,包括 256x256 的处理维度、默认强度因子 15 以及 Haar 小波基。为了确保程序独立运行,代码内嵌了生成练习数据的逻辑:通过三角函数构建具有纹理特征的项目载体图,并通过数学坐标生成一个代表水印的“W”形状二值图像。
- 多分辨率分析(小波分解)
利用二维离散小波变换(dwt2)对载体图像进行一级分解。该过程将图像拆分为四个子带:
- LL (低频近似):包含图像的主要能量和轮廓信息。
- HL (水平高频):捕捉水平边缘。
- LH (垂直高频):捕捉垂直边缘。
- HH (对角线高频):捕捉细节噪声。
- 水印处理与嵌入
由于小波分解后各子带的尺寸仅为原图的四分之一,程序会对二值水印进行最近邻插值缩放。嵌入选择在 LL 子带进行,计算逻辑为:将缩放后的水印像素点叠加到低频系数上,嵌入公式为 $LL_{marked} = LL + alpha times Watermark$。
- 系数重构(逆变换)
通过逆离散小波变换(idwt2),将修改后的 LL 分量与原始的高频分量(HL, LH, HH)结合,把图像从小波系数空间转换回空间像素域,生成最终的含水印图像。
- 质量评价与数据统计
程序通过计算均方误差(MSE)来得出 PSNR 值。同时,为了深入分析系统性能,程序在一个循环中模拟了 alpha 从 1 到 50 变化时的 PSNR 表现,并将其绘制成动态曲线供研究参考。
关键函数与算法分析
- 二维离散小波变换:作为核心算法,它将空间域信息映射到频域。由于 LL 包含了大部分能量,在此处嵌入水印可以获得较好的抗攻击稳定性,但会直接影响图像质量。
- 尺寸归一化逻辑:通过检测两图行列数并进行必要的采样缩放,确保了水印注入时像素点的一一对应。
- 数值类型转换:程序在计算过程中严格区分 double(高精度计算)和 uint8(图像显示存储),确保了计算精度的同时也防止了像素溢出。
- 误差放大机制:在结果展示中,使用了绝对值差异图并进行自动对比度拉伸,使得肉眼难以察觉的水印痕迹能够清晰地以视觉化方式呈现。
使用方法
- 启动 MATLAB 环境,将包含代码的工作目录设置为当前路径。
- 直接运行主程序。
- 程序将自动弹出可视化窗口,展示所有处理阶段的图像及性能评价曲线。
- 命令行窗口将实时输出载体维度、当前嵌入强度及所得出的 PSNR 数据。