基于分块离散余弦变换的数字水印嵌入与提取系统
项目介绍
本项目实现了一种利用8×8分块离散余弦变换(DCT)的数字图像水印算法。该系统可将二值水印图像隐蔽地嵌入至载体图像中,并能够抵抗一定程度的噪声干扰与压缩操作,从而有效提取出水印信息。系统提供完整的嵌入、提取流程,并支持对处理结果的视觉对比与定量相似度分析。
功能特性
- 鲁棒水印嵌入:通过8×8图像块DCT变换,结合最小二乘优化方法将水印信息嵌入至载体图像的中频系数,实现隐蔽性与鲁棒性的平衡。
- 噪声鲁棒提取:可从经过轻微噪声污染或JPEG压缩的图像中准确提取出水印。
- 可视化对比:提供载体图像、含水印图像、原始水印与提取水印的并排对比展示。
- 客观质量评估:输出归一化相关系数(NC)与误码率(BER)两项指标,量化评估提取水印的相似程度。
使用方法
- 准备输入文件:确保载体图像为8位灰度图(PNG或BMP格式),且长宽尺寸均为8的倍数;水印为二值黑白图像,其像素总数不超过载体图像的1/64。
- 设置嵌入强度:调整嵌入强度参数(建议范围0.05至0.3,默认值为0.1),该值影响水印的不可见性与鲁棒性。
- 运行系统:执行主程序,系统将自动完成水印嵌入、含噪/压缩攻击模拟及水印提取全过程。
- 查看结果:程序将显示处理前后的图像,并在命令行或界面中输出NC与BER值。
系统要求
- 操作系统:Windows / Linux / macOS
- 软件环境:MATLAB R2016b 或更高版本
- 必备工具箱:Image Processing Toolbox
文件说明
主入口文件整合了系统的全部核心工作流程,具体包括:读取并校验输入的载体与水印图像;根据设定的强度参数,调用分块DCT变换完成水印信息的嵌入;对生成的含水印图像施加模拟干扰以测试鲁棒性;执行水印提取算法恢复隐藏信息;最终计算并展示提取水印与原始水印的相似度指标,同时提供所有关键图像的视觉化输出。