实验六 DCT域图像数字水印算法
一、实验目的
在学习数字图像处理理论的基础上,设计实现DCT域图像数字水印算法,完成给定数字图像水印的嵌入和提取功能。锻炼综合和自学能力,以及独立编制、调试及运行复杂程序的能力,培养图像处理大型程序设计的实践能力,独立分析、解决技术问题的能力。
1、了解数字图像水印的概念、特点、分类、及其应用;
2、掌握数字图像水印的原理;
3、理解数字图像水印嵌入和检测过程;
4、进一步掌握Matlab在图像处理中的仿真功能。
二、实验的原理与内容
基于DCT的数字水印算法,首先将原始图像分成8×8的块,根据HVS特性将图像块进行分类。然后,对所有图像块做DCT变换。在DCT域,根据块分类的结果,不同强度的水印分量被嵌入到图像块的DCT系数中。
根据人类视觉系统的特性,水印嵌入到原始载体信号的高频系数中,其视觉不可见性较好,但其鲁棒性较差;反之,由于直流和低频分量携带了较多的信号能量,在图像失真的情况下,仍能保留主要成分,因此,将数字水印嵌入到低频系数中其鲁棒性较好 ,但是其数字水印的不可见性较差。反之,将水印嵌入到高频系数中,不可见性好,但鲁棒性差,所以,一般的水印算法将水印信号嵌入到原始图像的中频系数中。
最常用的嵌入规则为:
其中W为水印信号,X为被保护的原始图像载体的DCT变换系数,为嵌入水印后的载体系数。a为根据不同情况而变化的比例因子,它表示嵌入水印的强度,具体可由试验确定。基于人类视觉系统的自适应数字水印,其基本原理就是利用人类视觉特性中的视觉门限阈值JND决定是否加入水印及加入水印的强度。
当图像的各像素间差值较小时,应用乘法规则,否则采用加法规则。一般说来,乘法准则的抗失真性能要优于加法准则。
水印的检测是通过计算相关函数实现的。从嵌入水印的图像中提取是嵌入过程的逆过程,把提取出来的水印与原水印进行相似性运算,与指定的阈值比较,可确定是否存在水印。
实验内容:
1、设计一个数字水印算法,实现将给定的图像logo.tif(大小为64×64)作为水印图像嵌入到原始图像lena.tif(大小为256×256)中。并用提取算法从嵌入水印后的图像中再提取出水印图像。
2、对加水印后的图像进行噪声攻击,检测算法的抗攻击能力。
三、实验报告要求
1、简述DCT数字水印算法的基本原理;
2、叙述算法设计的主要思想和实现步骤;
3、给出Matlab实现算法的程序流程框图和源程序,要求源程序可读性好,必要时须加注释;
4、给出实验结果,原始图像、嵌入水印后图像、提取后的图像;
5、显示抗噪声干扰后的实验结果,并分析算法对噪声攻击的抵抗性能。(逐渐加大噪声方差,考察提取出的水印图像的降质情况)。
6.、显示算法的抗压缩性实验结果。
四、思考题
1、在DCT不同频段嵌入水印,对水印算法有什么影响?
2、通过该设计性实验,对图像处理课程有何新的认识?收获是什么?