一种保密性强的抗打印扫描数字图像水印方法
技术领域
本发明涉及一种保密性强的抗打印扫描数字图像水印方法,属于图片保密技术。
背景技术
数字水印技术是当前多媒体信息安全研究领域发展较快的热点技术,自二十世纪九十年代初发展至今,已受到国内外学术界和企业界的高度关注,数字水印理论和应用均取得了较大发展。抗打印扫描数字水印技术是伴随相应的需求出现的,它可应用于解决印刷品的版权保护、来源认证、防止伪造等问题。大部分的研究主要集中在DCT,DFT变换的基础上,很少有现有的主流的DWT变换的研究,不适应未来网络传播的需求,抗打印扫描干扰的特性较差,水印的保密性也有待提高。
发明内容
发明目的:为了克服抗打印扫描干扰特性和保密性较差的问题,本发明提供一种保密性强的抗打印扫描数字图像水印方法,该方法具有良好的保密性。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种保密性强的抗打印扫描数字图像水印方法,在原图片的低频区域使用零水印,在原图片的中频区域嵌入与置乱次数相关的信息。
进一步的,一种保密性强的抗打印扫描数字图像水印方法,对水印图片进行Arnold置乱;对原图片进行DWT-DCT变换,对变换后的低频区域运用零水印方法得到密钥;对原图片进行DCT变换,对变换后的中频区域进行矩阵变换得到含水印的图片,在矩阵变换的过程中嵌入与置乱次数相关的信息。
进一步的,一种保密性强的抗打印扫描数字图像水印方法,对原图片进行水印图片嵌入的过程为:对水印图片进行Arnold置乱;对原图片进行DWT变换得到低频子图,对低频子图进行DCT变换和Zigzag扫描,根据处理后低频子图系数的正负得到低频子图的特征向量,将特征向量和置乱后的水印图片进行按位异或运算,最后得到密钥;对原图片进行DCT变换后再进行矩阵变换,根据Arnold置乱的置乱次数改变中频系数的正负,经反DCT变换后得到含水印的图片。
进一步的,一种保密性强的抗打印扫描数字图像水印方法,对含水印的图片进行水印图片提取的过程为:对含水印的图片进行DWT变换得到低频子图,对低频子图进行DCT变换和Zigzag扫描,根据处理后低频子图系数的正负得到低频子图的特征向量, 将特征向量和密钥进行按位异或运算,最后得到置乱后的水印;对含水印的图片进行DCT变换后再进行矩阵变换,根据中频系数的正负确定Arnold置乱的置乱次数,结合置乱次数对置乱后的水印进行恢复,最后得到水印图片。
进一步的,一种保密性强的抗打印扫描数字图像水印方法,包括对原图片进行水印图片嵌入的步骤和对含水印的图片进行水印图片提取步骤,具体如下:
对原图片进行水印图片嵌入:
(11)确定水印图片的二值图片M,确定置乱次数s;
(12)对M进行Arnold置乱得到M1;
(13)对m×m的原图片进行DWT变换得到低频子图W,对W进行DTC变换得到矩阵Z;
(14)对Z进行Zigzag扫描,得到一维矩阵P;
(15)取P的前n个元素形成一维矩阵Q,Q的第i个元素记为qi,i=1,2,...,n,n为二值图片M的像素点个数;若qi≥0,更新qi=1;若qi<0,更新qi=0;
(16)将Q和M1进行按位异或运算,即K=bitxor(M1,Q),得到的K即为密钥;
(17)对原图片进行DCT变换得到DCT系数T1,对DCT系数T1进行矩阵变换得到矩阵R1,T1和R1均为m行m列的矩阵;
(18)根据Arnold置乱的置乱次数s定义一个长度为d的盲水印序列H,H的第j个元素记为hj,j=1,2,...,d;
(19)根据d,取R1的第
至
行作为水印图片的嵌入位置;
(110)嵌入水印图片的行数总共为d行,对于嵌入水印图片的第j行:若hj=1,则要求nj+-nj->δ,若不能够满足,则将该行中最大的负数取负,直至满足条件;若hj=0,则要求nj--nj+>δ,若不能够满足,则将该行中最大的正数取负,直至满足条件;nj+表示第j行正数的个数,nj-表示第j行负数的个数,δ为设定值;最终将R1更新为R1';
(111)将R1'按照反矩阵变换后得到DCT系数T1',T1'经反DCT变换后得到含水 印的图片;
对含水印的图片进行水印图片提取:
(21)已知含水印的图片、密钥K以及盲水印序列H'的长度d;通过含水印的图片可以明确水印图片M'的像素点个数n,含水印的图片为m×m图片;
(22)对含水印的图片进行DWT变换得到低频子图W',对W'进行DTC变换得到矩阵Z';
(23)对Z'进行Zigzag扫描,得到一维矩阵P';
(24)取P'的前n个元素形成一维矩阵Q',Q'的第i个元素记为qi',i=1,2,...,n;若qi'≥0,更新qi=1;若qi'<0,更新qi=0;
(25)将Q'和K进行按位异或运算,即M2=bitxor(K,Q'),得到置乱后的水印M2;
(26)对含水印的图片进行DCT变换得到DCT系数T2,对DCT系数T2进行矩阵变换得到矩阵R2,T2和R2均为m行m列的矩阵;
(27)根据盲水印序列H'的长度d,检测R2的第
至
行,检测的行数总共为d行,对于检测的第j行:若nj+>nj-,则令hj'=1;若nj->nj+,则令hj=0;最终得到盲水印序列H';
(28)根据盲水印序列H'得到Arnold置乱的置乱次数s';
(29)根据s'对置乱后的水印M2进行恢复,最后得到水印图片M';
所述步骤(17)和步骤(26)中对DCT系数进行矩阵变换的方法相同,矩阵变换的方法为:对于n行n列的矩阵T,其第i行j列的元素为tij,i=1,2,...,n,j=1,2,...,n;经矩阵转换后得到矩阵R,R的第i行元素记为:
ri1,ri2,ri3,...,rii,ri(i+1),ri(i+2),ri(i+3),...,rin
=ti1,t(i-1)2,t(i-2)3,...,t1i,tn(i+1),t(n-1)(i+2),t(n-2)(i+3),...,t(i+1)n
所述步骤(111)的反矩阵变换为上述矩阵变换的逆变换。
有益效果:本发明提供的保密性强的抗打印扫描数字图像水印方法,该方法结合了零水印和盲水印的特点,对水印图像进行Arnold置乱,并根据DWT和DCT变换,在原始图像的低频区域得到图像的特征向量,再根据水印图片的信息得到密钥;在中频区 域,根据一种矩阵的变换方法嵌入置乱次数的有关信息。根据扫描后的图片和密钥即可提取水印图片。该方法中零水印的应用保证了水印的容量以及算法的稳定性,盲水印和置乱的应用提高了水印的保密性。该方法得到的含水印图片在使用打印机以及扫描仪后,其指标系数在满意的范围内,且能够有效提取出原始水印图片,具有实用价值。
附图说明
图1为本发明中水印的嵌入流程;
图2为本发明中水印的提取流程。
具体实施方式
下面结合附图对本发明作更进一步的说明。
一种保密性强的抗打印扫描数字图像水印方法,包括对原图片进行水印图片嵌入的步骤和对含水印的图片进行水印图片提取步骤,具体如下:
对原图片进行水印图片嵌入(如图1所示):
(11)确定水印图片的二值图片M,确定置乱次数s;
(12)对M进行Arnold置乱得到M1;
(13)对m×m的原图片进行DWT变换得到低频子图W,对W进行DTC变换得到矩阵Z;
(14)对Z进行Zigzag扫描,得到一维矩阵P;
(15)取P的前n个元素形成一维矩阵Q,Q的第i个元素记为qi,i=1,2,...,n,n为二值图片M的像素点个数;若qi≥0,更新qi=1;若qi<0,更新qi=0;
(16)将Q和M1进行按位异或运算,即K=bitxor(M1,Q),得到的K即为密钥;
(17)对原图片进行DCT变换得到DCT系数T1,对DCT系数T1进行矩阵变换得到矩阵R1,T1和R1均为m行m列的矩阵;
(18)根据Arnold置乱的置乱次数s定义一个长度为d的盲水印序列H,H的第j个元素记为hj,j=1,2,...,d;
(19)根据d,取R1的第
至
行作为水印图片的嵌入位置;
(110)嵌入水印图片的行数总共为d行,对于嵌入水印图片的第j行:若hj=1, 则要求nj+-nj->δ,若不能够满足,则将该行中最大的负数取负,直至满足条件;若hj=0,则要求nj--nj+>δ,若不能够满足,则将该行中最大的正数取负,直至满足条件;nj+表示第j行正数的个数,nj-表示第j行负数的个数,δ为设定值;最终将R1更新为R1';
(111)将R1'按照反矩阵变换后得到DCT系数T1',T1'经反DCT变换后得到含水印的图片;
对含水印的图片进行水印图片提取(如图2所示):
(21)已知含水印的图片、密钥K以及盲水印序列H'的长度d;通过含水印的图片可以明确水印图片M'的像素点个数n,含水印的图片为m×m图片;
(22)对含水印的图片进行DWT变换得到低频子图W',对W'进行DTC变换得到矩阵Z';
(23)对Z'进行Zigzag扫描,得到一维矩阵P';
(24)取P'的前n个元素形成一维矩阵Q',Q'的第i个元素记为qi',i=1,2,...,n;若qi'≥0,更新qi=1;若qi'<0,更新qi=0;
(25)将Q'和K进行按位异或运算,即M2=bitxor(K,Q'),得到置乱后的水印M2;
(26)对含水印的图片进行DCT变换得到DCT系数T2,对DCT系数T2进行矩阵变换得到矩阵R2,T2和R2均为m行m列的矩阵;
(27)根据盲水印序列H'的长度d,检测R2的第
至
行,检测的行数总共为d行,对于检测的第j行:若nj+>nj-,则令hj'=1;若nj->nj+,则令hj=0;最终得到盲水印序列H';
(28)根据盲水印序列H'得到Arnold置乱的置乱次数s';
(29)根据s'对置乱后的水印M2进行恢复,最后得到水印图片M';
所述步骤(17)和步骤(26)中对DCT系数进行矩阵变换的方法相同,矩阵变换的方法为:对于n行n列的矩阵T,其第i行j列的元素为tij,i=1,2,...,n,j=1,2,...,n;经矩阵转换后得到矩阵R,R的第i行元素记为:
ri1,ri2,ri3,...,rii,ri(i+1),ri(i+2),ri(i+3),...,rin
=ti1,t(i-1)2,t(i-2)3,...,t1i,tn(i+1),t(n-1)(i+2),t(n-2)(i+3),...,t(i+1)n
所述步骤(111)的反矩阵变换为上述矩阵变换的逆变换。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。