1.一种基于菱形像素对互补嵌入的可逆水印算法,其特征在于,包括水印嵌入方法,具体包括如下步骤:步骤1:首先将大小为M×N原始图像I进行预处理,防止像素值的溢出;
(1)顺序扫描图像,若某个像素位置的灰度值I(i,j)不大于2或不小于253,则按式(1)分别将该位置的灰度值设置为2或253:(2)设置2个初始值为空的向量L和R,按顺序分别保存2‑I(i,j),灰度值I(i,j)不大于2和I(i,j)‑253,灰度值I(i,j)不小于253的二进制位,如式(2)所示:其中,k1和k2的初值都为1,每处理一个满足条件的像素后,k1或k2的值自动增加1;
dec2bin()表示将一个十进制转为对应的二进制;
步骤2:对水印图像W做Arnold置乱处理;
步骤3:将原始图像I分为若干个8×8互不重叠的像素块Ii, 然后将所有像素块划分为灰、白两个半平面;
步骤4:利用局部复杂度计算得出所有像素块的平滑度值,按照从大到小排序,建立像素块顺序索引表;
步骤5:根据水印信息量的大小,选取平滑度值靠前的m个像素块嵌入水印信息,利用菱形像素对预测方法对水平方向的灰色半平面像素进行预测作差,生成差值直方图,对白色半平面像素进行预测作差,生成差值直方图;然后对垂直方向灰、白半平面像素进行同样操作;所述菱形像素对预测方法的像素的预测差值由四对相邻像素预测;
利用菱形像素对预测方法对像素进行预测作差的具体操作为:
假设图像I大小为M×N,对于图像块的预测方式为,像素u(i,j)的预测差值由四对相邻像素预测,得到预测差值如式(3)所示:其中,a=v(i,j‑2)‑v(i,j‑1),b=v(i‑1,j)‑v(i‑1,j+1),c=v(i,j+2)‑v(i,j+3),d=v(i+1,j)‑v(i+1,j+2);
步骤6:分别在水平和垂直方向嵌入水印信息;水平方向上,在灰色半平面目标像素进行第一次嵌入,然后对白色半平面目标像素进行第二次嵌入;同理,垂直方向上,对灰色半平面目标像素进行第一次嵌入,接着对白色半平面目标像素进行第二次嵌入;
步骤7:在步骤6进行水印嵌入时,选择直方图中与频率较低像素值相近的次峰值点,利用直方图位移法在次峰值点处嵌入,直至水印信息嵌入完成;
步骤8:将顺序索引表、水印图像大小的辅助信息利用数据压缩法嵌入在平滑度值靠后的n个像素块中;最后,根据顺序索引信息表,将所有像素块进行重组,得到最终的含水印图像IW。
2.根据权利要求1所述的基于菱形像素对互补嵌入的可逆水印算法,其特征在于,还包括水印提取方法,具体包括如下步骤:然后将所有像素块划分为灰、白两个半平面;
S2:利用局部复杂度计算得出所有像素块的平滑度值,按照平滑度值从大到小进行排序,并建立像素块顺序索引表;
S3:在平滑度值靠后的n块中利用逆数据压缩法提取出辅助信息,根据所提取出的辅助信息,恢复复杂块和平滑块,并辅助提取平滑块水印信息;
S4:选取平滑度值靠前的m块像素块,对灰、白两个半平面像素进行菱形像素对预测方法预测差值并生成差值直方图;
S5:在像素块灰、白两个半平面的垂直和水平方向分别提取水印信息,垂直方向上,在白色半平面目标像素进行第一次提取,然后对灰色半平面目标像素进行第二次提取;同理,水平方向上,对白色半平面目标像素进行第一次提取,接着对灰色半平面目标像素进行第二次提取;
S6:在S5进行提取水印时,选择直方图中与频率较低像素值相近的次峰值点,利用逆直方图位移法在次峰值点处进行提取水印,直至水印信息提取完毕,然后将提取的水印图像进行逆置乱处理,恢复原始水印图像W;
S7:根据顺序索引信息表,将所有像素块进行重组,得到最终的原始图像I。
3.根据权利要求1或2所述的基于菱形像素对互补嵌入的可逆水印算法,其特征在于,进行水印嵌入的具体操作为:水印嵌入过程分为水平和垂直方向嵌入两个阶段,当进行水印嵌入时,对图像I分块进行从左到右、从上到下的处理:
1)在水平嵌入方向,I(i,j)为原始像素,由式(3)可得d1(i,j),像素移动如式(4)所示,嵌入的水印数据位b∈{0,1}嵌入如式(5)所示:
2)在垂直嵌入方向,对于每个像素H(i,j),其预测值 计算如下式所示:其中, 为向下取整公式,H(i,j)为嵌入像素,V(i,j)为新的嵌入像素,得到预测值后,通过式(7)计算出当前得H(i,j)与其预测值 之间的预测误差d2(i,j);
在垂直嵌入,像素移动如式(8)所示,嵌入的水印数据位b∈{0,1}嵌入如式(9)所示:
4.根据权利要求2所述的基于菱形像素对互补嵌入的可逆水印算法,其特征在于,所述S5中对水印信息进行提取的具体操作为:
1)在垂直方向提取,预测值 的计算如式(10)所示:
其中,H(i,j)为恢复后的像素,得到预测值 后,通过下式(11)计算出像素V(i,j)与其预测像素 之间的预测误差d2(i,j):分别用式(12)还原像素值,用式(13)提取水印数据位:
2)在水平方向提取,预测值 的计算如式(14)所示:
其中,I(i,j)为恢复后像素,得到预测值 后,通过式(15)计算出H(i,j)与其预测值 之间的预测误差d1(i,j):分别用式(16)还原像素值,用式(17)提取水印数据位:
5.根据权利要求1或2所述的基于菱形像素对互补嵌入的可逆水印算法,其特征在于,利用局部复杂度计算所有像素块的平滑度值,具体为:若有大小为M×N的载体图像I,对于每一个像素分块,其中间的像素为目标像素Ci,目标像素相邻的八个像素为非参考像素,对于参考像素非边缘的块,有四个其它的参考像素它们分别位于参考像素Ci的左右上下位置,这些像素为参考像素Ci的随体参考像素,对于局部复杂度的计算如下式所示:
其中, 表示四个随体相关像素最大和最小绝对方差,如果LC<T,则所在的像素块属于平滑块,T为根据水印信息量,设置的一个阈值,用于划分平滑块和复杂块。