基于离散小波变换(DWT)的图像数字水印系统
项目介绍
本项目是一个基于MATLAB开发的数字图像水印系统。它利用离散小波变换(DWT)的频域特性,将版权信息(二值化水印图像)嵌入到宿主图像的低频子带中。系统集成了安全性增强(Arnold置乱)、多层级频域分解、多种模拟攻击测试以及客观质量评价模型,形成了一个闭环的图像版权保护实验与演示平台。该系统特别强调了在保证图像不可见性的前提下,通过非盲提取技术验证水印的稳健性。
系统功能特性
- 增强安全性设计:系统通过对原始水印进行Arnold置乱转换,打破了水印像素的空间相关性,即使水印信息被非法截获,在没有迭代次数作为密钥的情况下也无法还原其原始特征。
- 频域嵌入策略:采用Haar小波基进行二级小波分解,选择稳定性最强的LL2低频近似系数子带。这种选取方式确保了水印信息能够抵御常见的低通滤波和图像处理操作。
- 鲁棒性验证模块:预设了六种实验场景,包括无攻击对比、加性高斯噪声、脉冲椒盐噪声、非线性中值滤波、空间剪切攻击以及JPEG有损压缩。
- 量化评价指标:集成峰值信噪比(PSNR)用于衡量嵌入水印后宿主图像的失真程度;利用归一化互相关系数(NC)精确测量提取出的水印与原始水印的相似度。
- 直观可视化界面:系统自动生成两组实验图表。第一组展示水印处理的前后对比及小波分解各级系数分布;第二组展示在不同攻击下含水印图像的状态与对应的提取恢复效果。
系统要求
- 软件环境:MATLAB R2016b 及以上版本。
- 必备工具箱:Image Processing Toolbox(图像处理工具箱)、Wavelet Toolbox(小波工具箱)。
- 硬件性能:常规运行内存和处理器即可,系统对512x512像素级别的处理具有实时响应能力。
核心算法与实现逻辑
- 水印预处理与加密
在该阶段,系统读取128x128的二值化水印。核心子程序通过Arnold变换(猫映射)对水印坐标进行位置迭代置乱。代码通过特定的迭代次数作为安全密钥,实现了将有意义的文字或图案转化为杂乱的无意义信号。在提取阶段,系统再次调用逆Arnold变换逻辑,利用其周期性或逆向映射公式恢复原始图案。
- 二级小波分解与嵌入过程
系统首先将宿主图像(如Cameraman)统一缩放并转换为双精度灰度图。利用离散小波变化算子对待处理图像进行二级分解,得到包含低频近似子带(LL2)和一系列高频细节子带(水平、垂直、对角系数)的系数矩阵。
嵌入算法采用加性原则:将置乱后的水印信号乘以嵌入强度因子K,并直接叠加到LL2系数上。随后,通过逆小波变换(IDWT)将修改后的系数矩阵重构回空域,生成肉眼难以察觉差异的含水印图像。
- 模拟攻击测试环境
代码内置了一个循环遍历机制,分别对生成的含水印图像执行以下操作:
- 噪声污染:模拟传输过程中的电磁干扰(高斯)或信道错误(椒盐)。
- 滤波平滑:使用3x3窗口进行中值滤波,测试算法对抗平滑处理的能力。
- 几何损伤:通过将图像左上角1/4区域像素置零,测试算法对抗局部丢失的能力。
- 有损压缩:通过设定质量因子为50的JPEG编码,模拟图像在网络传输中的典型压缩损耗。
- 非盲提取与后处理
提取逻辑基于嵌入过程的逆运算。系统根据存储的原始小波系数与受攻击图像的小波系数之差,除以强度因子K,从而推导出可能存在的水印信号。提取出的信号流经过逆置乱恢复原始排布,并利用二值化处理去除残余背景噪声,从而输出清晰的可视化水印结果。
- 性能评估计算
计算逻辑涵盖了两个维度:
- 图像保真度:通过计算原始图像与嵌入后图像像素间的均方误差,转化为PSNR分贝值。
- 水印相似度:通过计算原始水印向量与提取水印向量的点积与模长比值,得出NC系数值(0至1之间),数值越接近1,说明抗攻击鲁棒性越强。
使用方法- 环境配置:确保MATLAB路径中已包含所有算法相关的文件。
- 参数调整:可以在主程序的开头修改K值(嵌入强度)以平衡不可见性与鲁棒性,或修改Arnold迭代次数以增强密钥安全性。
- 启动系统:在命令行窗口输入主程序名称并回车。
- 结果查看:程序运行完成后会自动弹出两个Figure窗口,展示完整的实验数据和图像对比。同时,控制台会输出详细的性能评估报告。