基于DCT域的鲁棒性数字水印嵌入与提取系统
项目介绍
本项目实现了一个基于离散余弦变换(DCT)的鲁棒性数字水印系统。系统通过DCT域的分块处理技术,将水印信息自适应地嵌入到载体图像的频域系数中,具备抵抗常见图像攻击的能力。系统结合人类视觉系统(HVS)特性优化嵌入策略,确保水印不可见性的同时提高鲁棒性。
功能特性
- 多格式支持:支持BMP、PNG、JPG格式的灰度/彩色图像作为载体
- 水印多样化:支持二值图像或文本字符串作为水印信息
- 灵活嵌入策略:提供低频/中频系数嵌入选择,可调整嵌入强度和DCT块大小
- 抗攻击测试:集成噪声添加、JPEG压缩、图像剪切等多种攻击测试功能
- 完整性验证:提供水印提取和相似度验证(NC/BER指标)
- 可视化分析:显示原始图像、含水印图像及差异对比图
使用方法
- 水印嵌入:
- 选择载体图像和水印信息(图像或文本)
- 设置嵌入参数(强度、块大小、频带选择)
- 输入加密密钥种子值
- 执行嵌入操作,生成含水印图像
- 水印提取:
- 加载可能受损的含水印图像
- 输入与嵌入时相同的密钥参数
- 执行提取操作,获得还原的水印信息
- 抗攻击测试:
- 选择攻击类型(噪声、压缩、剪切等)
- 设置攻击参数强度
- 自动测试水印存活能力并生成统计报告
系统要求
- MATLAB R2018b或更高版本
- Image Processing Toolbox
- 至少4GB内存(处理大图像时推荐8GB以上)
文件说明
main.m作为系统主入口,统筹协调各功能模块的工作流程,具体实现了图像与水印的载入与预处理、DCT分块变换与系数选择、基于HVS的自适应嵌入强度控制、水印信息的加密与嵌入、含水印图像的生成与攻击模拟、水印的提取与相关性检测,以及最终结果的可视化展示与指标输出。