1.一种基于预测误差扩展的可逆图像水印算法,其特征在于,具体步骤为:步骤1:对水印W作Arnold变换得到W',得到水印信息位数为n;
步骤2:将原始图像划分成若干区域,每个区域大小为a*a,对各区域进行从左到右从上到下排序,然后按序选择区域进行预测误差计算;
步骤3:对前 个区域首先按照从左到右,从上到下依次选取2×2的重叠图像块,每块中4个像素为一组,选取块中除左上像素外的其余3像素进行预测,得到预测值,将其和块中左上元素构成一像素对;
步骤4:对步骤3选择的图像区域中生成的像素对利用差值扩展算法按从左到右,从上到下嵌入水印信息,此为第一次嵌入水印信息;对产生溢出的像素点对不被用来嵌入水印,但需进行标注并压缩;
步骤5:将步骤4中第一次嵌入水印信息生成的含水印图像区域,包括被标注的溢出点,按照从下向上,从右到左依次选取2×2的重叠图像块,每块中4个像素为一组,选取块中除右下像素外的其余3像素进行预测,得到预测值,将其和块中右下元素构成一像素对;
步骤6:对含水印图像区域中生成的像素对利用差值扩展算法按从下向上,从右到左嵌入水印信息,此为第二次嵌入水印信息;对产生溢出的像素点对不被用来嵌入水印,但需进行标注并压缩;
步骤7:按序合并各个含水印的区域,最终生成含水印图像,同时将嵌入时标注的溢出点信息以零水印的方式发送给接收方。
2.根据权利要求1所述的基于预测误差扩展的可逆图像水印算法,其特征在于,还包括对应的水印提取算法,所述水印提取算法具体步骤包括:S1:对含水印图像进行2×2的重叠图像分块,根据接收到的零水印将在第二次嵌入时产生的溢出信息在含水印图像中进行标识;
S2:按照从左到右,从上到下依次选取2×2的重叠图像块,每块中4个像素为一组,选取块中除右下像素外的其余3像素进行预测,得到预测值,将其和块中右下元素构成一像素对;
S3:对生成的像素对采用差值扩展逆变换提取出水印,同时恢复出经第一次预测误差扩展嵌入水印后生成的含水印图像;
S4:根据水印嵌入时接收到的零水印将在第一次嵌入时产生的溢出信息在恢复出的含水印图像中进行标识;
S5:对S3中的含水印图像按从下向上,从右到左顺序依次选取2×2的重叠图像块,每块中4个像素为一组,选取块中除左上像素外的其余3像素进行预测,得到预测值,将其和块中左上元素构成一像素对;
S6:对S5生成的像素对采用差值扩展逆变换提取出水印,同时恢复出原始图像;
S7:合并S3中第一次提取的水印信息和S6中第二次提取的水印信息,并对获取的水印信息进行逆Arnold变换,最后生成所需要的水印信息。
3.根据权利要求1或2所述的基于预测误差扩展的可逆图像水印算法,其特征在于,所述差值扩展算法的具体步骤为:对图像中任一像素对P=(x,y)进行整数变换,得到均值l和差值h,其正变换为:h=x–y,其逆变换为:
把得到的差值h左移1bit,并将水印b嵌入到2h的最低有效位上,其数学表达式为:h′=
2h+b,|h′|≤min(2(255‑l),2l+1)。