文档介绍:《信息安全技术基础》
实
验
报
告
五
题目: 数字水印
专业班级: 软件1101班
学号: 201116040101
姓名: 李佳宾
指导教师: 刘宏月
2014年 04 月 17日
一、实验目的
1、理解数字水印的实现原理;
2、通过演示程序加深对数字水印的理解,并完成水印嵌入和检测的代码编写;
3、通过实验,掌握DLL的调用方法和文件操作方法。
二、实验内容和要求
1、数字水印程序演示
(1)用AssureMark演示版软件实现在一幅图像中嵌入水印信息(手动输入或从文件读取),对比嵌入水印前后的图像有无明显变化;
(2)用AssureMark演示版软件实现对一幅给定图像进行是否嵌入水印的检测。
2、数字水印程序编写:仔细阅读给定DLL中关于水印嵌入和水印提取函数的说明,在给定程序框架的基础上,编写代码分别实现水印的嵌入与检测。
(1)调用DLL中的_ADDWATERMARK函数,实现水印嵌入。提示:若水印嵌入成功,需要分别用文件保存嵌入水印后的图片和源DCT系数,以备水印检测使用;
(2)调用DLL中的_GETWATERMARK函数,实现水印检测。提示:需要先读取之前保存的源DCT系数。
3、阅读教材有关章节,理解数字水印技术的作用和原理,掌握离散余弦变换(DCT)算法的原理。
4、阅读资料,掌握bmp文件的结构及读写操作,并初步编制好程序。
5、准备好多组测试数据。
三、实验过程及结果
1、数字水印演示程序操作
Step 1:运行AssureMark数字水印演示程序,在程序主界面的“模式选择”域中选择“嵌入水印”,然后单击“打开”按钮,选择要嵌入水印信息的原始图像;单击“保存”按钮,设置嵌入水印信息后要保存的图像文件();在“水印信息”域中选择“手动输入”或“从文件读取”要嵌入的水印信息,如手动输入“lijiabin”。。
注:AssureMark数字水印演示程序有bug,在单击“保存”按钮设置嵌入水印信息后要保存的图像文件后,程序不会在保存图像文件名后自动加上文件后缀名,。
嵌入水印信息设置
Step 2:“嵌入水印”按钮后,首先弹出显示原始图像的窗口,关闭此窗口后弹出显示嵌入水印信息后图像的窗口,关闭后显示“水印信息嵌入成功”的提示窗口,,可以看出嵌入水印前的图像与嵌入水印后的图像在视觉上并无明显差异。
嵌入水印信息前的图像
嵌入水印信息后的图像
Step 3:在程序主界面的“模式选择”域中选择“检测水印”,然后单击“打开”按钮,选择要检测是否嵌入水印信息的原始图像。设置完毕后单击“检测水印”按钮,,关闭后显示“水印信息提前成功”的提示窗口,并在主界面“提取的水印信息”栏中显示提取到的水印信息“lijiabin”,。显然,这与先前嵌入的水印信息是一致的。如果待检测图像中并未嵌入水印信息,则单击“检测水印”按钮后弹出的窗口显示为空白,关闭后显示“提取水印信息失败!(图片未嵌入水印或水印受到严重