基于DCT算法的数字水印技术研究
2018-12-15张亚峰何丹丹
张亚峰 何丹丹 李 宁
(平顶山学院信息工程学院 河南平顶山467000)
随着计算机网络技术电子商务的发展,数字化产品成为当今市场的主流。因其易被复制和篡改的特性,数字产品的版权保护成为急需解决的问题。当今国内时常出现知识产权问题以及侵权事件,要想减少并杜绝此类事件,那就要并重视数字产品的保护问题。数字水印技术能够较好的解决这类问题,只有加快数字水印技术的研究,完善我国数字水印版权保护标准,才能解决此类问题[1-6]。
1 基于DCT算法实现的数字水印嵌入与提取
1.1 DCT算法的实现步骤
首先对图像进行DCT变换,变换后的结果为频域。接着从变换后数据D的DCT系数中选取n个最重要的频率分量,组成序列,用来提高JPEG压缩的鲁棒性。然后,拿密钥来产生伪随机序列,即水印序列X=x1,x2,…,xn,其中xi是满足高斯分布的随机数,然后用伪随机高斯序列来叠加选定的 DCT系数,产生带水印的序列V=v1,v2,…,vn。再将V转换为D,最后反变换为含有水印的图像。水印检测依赖于一个阈值,当其检测结果超过阈值时, 就判断其含有水印,否则判断没有[7-9]。
1.2 基于DCT算法的数字水印嵌入
DCT变换具有许多的优点,比如误码率小、信息集中性高、复杂性较好等,因此常被使用[10-12]。二维离散DCT变换公式如下:
注:u=0,1,2,M−1; v=0,1,2,N−1;M,N为图像块的行、列值。
DCT反变换时计算公式如下:
其中:u=0,1,2,…,M−1;v=0,1,2,…,N−1;M、N为图像块的行、列值。
上述给出了DCT算法,该算法用于嵌入水印当中的思想用流程图表示如图1所示。
图1 嵌入水印流程图
1.3 水印的提取过程
基本过程框图如图2所示,也即水印嵌入过程的逆过程[13-15]。
图2 提取过程框图
2 数字水印的实现
2.1 数字图像的读取及灰度处理
本文的仿真利用MATLAB平台来实现。将需要处理的图像放置到 MATLAB安装目录里面的work文件夹里,读取图像数据并对其进行灰度化处理[16]。
2.2 水印的嵌入
对原始图像进行DCT变换,产生水印序列然后对其排序,调用Cheby函数以产生混沌序列,混沌序列即所要嵌入的水印序列,产生水印序列后,要进行水印序列的插入。首先要按照一定的算法找好插入水印的位置并插入,以便图像遭到攻击时也能根据提取到的水印信息找到被攻击的位置及程度,人眼所能识别的图像的能量一般集中在低频部分,若对其他部分添加微小成分,也不会被人眼识别[17-18]。
然后对所得图像进行 IDCT,即可得到带有水印信号的复合图像,显示如图3所示。
图3 执行结果图像
2.3 水印的检测及提取
本文采用的检测方式为非盲检测,检测过程当中会用到原始图像。水印序列的检测过程为:先对嵌入水印的图像进行DCT变换,然后找到嵌入水印序列的位置,提取Y0序列。利用cheby函数生成的Y0序列与之相对比,若基本一致,即检测水印成功。若基本不相同,则说明检测失败[19]。在检测过程中生成的有嵌入水印图的DCT变换图(提取图1),如图4所示。提取到的的水印序列图,如图5所示。
图4 原图与嵌入水印图的DCT变换图
图5 提取的水印图
本文在得到嵌入水印图像后又对图像进行了图像质量评价,采用的两个参数是MSE、PSNR。MSE(均方误差)、PSNR(峰值信噪比)常用于对于信号噪声的计算。随着科技和时代的发展,各个学科的日益相互交叉,相互渗透。各个不同领域的部分参数逐渐被相关领域所借用,并给予了一些新的解释。这两个参数是近年来被引入到图像处理领域,虽然其并不能完全估计图像的质量,但是也提供了一种新的研究思路与方法。
PSNR是衡量图像失真或是噪声的一个客观标准,用来客观评价图像变化以及压缩前后图像劣化程度,其单位为dB(分贝)。两个图像间,MSE值越小越好,而PSNR值越大,则越趋于无劣化,劣化程度较大时,PSNR值趋于0dB。一般PSNR值在20dB以上基本就符合要求了[20]。计算公式如下:
利用本文算法进行仿真,得出MSE=87.3082,PSNR=28.7205。
3 结语
MATLAB软件具有十分强大的数据分析和处理功能。本文的设计主要是采用基于 MATLAB的DCT变换法将水印信息嵌入到载体图像当中。首先使用 cheby函数产生混沌序列。同时对灰度处理的图像进行DCT变换,然后使用一定算法找到载体的一定位置,运用IDCT变换将混沌水印序列嵌入到已经处理的载体图像当中。通过对嵌入水印后的图像的MSE、PSNR等参数的计算,对图像质量进行了评价。由得出的计算数值说明该方法的水印嵌入基本符合要求,同时也反映出该嵌入水印后的图像质量有所下降,但在允许的范围之内。