1.本发明的目的是提供一种基于纯四元数Schur分解的彩色数字图像盲水印方法,其特征在于通过具体的水印嵌入过程和提取过程来实现的,其水印嵌入过程描述如下:第一步:彩色数字水印图像的预处理:首先,将一幅大小为N×N的彩色数字水印图像W依照红、绿、蓝三基色的顺序分成3个分层水印图像Wi;然后,将每个分层水印图像进行基于密钥Kai和Kbi的二维Logistic混沌映射;最后,将置乱后的分层水印图像中的每个十进制数2
表示的像素用8位二进制数表示,并依次连接形成长度为8N 的分层水印位序列SWi,其中i=
1, 2, 3分别表示红、绿、蓝三层;
第二步:获取宿主图像的嵌入块:将一幅大小为M×M的原始彩色宿主图像H分成大小为m×m的非重叠图像块,每一个图像块纵向包含红、绿、蓝三层;根据分层水印信息的长度2
8N ,利用Matlab系统内置函数randperm生成的伪随机序列从宿主图像H中选择合适的图像2
块A,其中3×8N <=(M×M)/(m×m);
第三步:添加抖动噪声:对选取的图像块A的每个像素值,添加在‑0.5和0.5之间的随机数值;然后,再对每个像素值进行判断,如果其值为负数,则将其修改为对应的相反数;
第四步:纯四元数Schur分解:将纵向包含红、绿、蓝三层的图像块A转换为四元数实表R R
示矩阵A ,再根据公式(1)对A 的第一列块 进行纯四元数Schur分解,得到四元数实表示酉矩阵的第一列块U和四元数实表示上三角矩阵的第一列块V;
[U,V]=QSchur( ) (1)其中, ,A1=zeros(m,m),zeros(m,m)是产生一个m×m的零矩阵函数,m是图像块的尺寸大小,A2为图像块A红色通道的像素值,A3为图像块A绿色通道的像素值,A4为图像块A蓝色通道的像素值;
第五步:嵌入水印信息:按先后顺序从三个分层水印序列SWi中各取出一个待嵌入水印信息wi,依据该嵌入水印信息wi及公式(2),对四元数实表示酉矩阵的第一列块U相应位置的*
值进行更改得到U ;
(2)
* *
其中,U(x,1)是U在第x行第1列的值,U (x,1)是修改U后的U 在第x行第1列的值,x∈{p,q},uavg=(abs(U(p,1))+abs(U(q,1)))/2,p=i×m+2,q=i×m+3,i=1, 2, 3分别表示红、绿、蓝三层,m是图像块的尺寸大小,sign(.)是符号函数,abs(.)是绝对值函数,T是量化步长;
第六步:逆纯四元数Schur分解:利用公式(3)进行逆纯四元数Schur分解,得到含水印的四元数实表示矩阵的第一列块 ;
* * T
=U ×V×(U) (3)第七步:利用水印信息wi和公式(4)对 的值进行修改,得到最终的含水印的四元数实表示矩阵第一列块 ;
(4)其中, (x,1)是 在第x行第1列的值, (x,1)是 在第x行第1列的值,x∈{p,q},p=i×m+2,q=i×m+3,i=1, 2, 3分别表示红、绿、蓝三层,m是图像块的尺寸大小,floor(.)是向下取整函数,ceil(.)是向上取整函数;
*
第八步:将含水印的四元数实表示矩阵第一列块 转换为含水印的图像块A 并将其更新到载体图像H中的相应位置;
第九步:重复执行本过程的第二步到第八步,直到所有的水印信息都被嵌入完成为止,*
最后,获得含水印图像H ;
其水印提取过程描述如下:
*
第一步:将含水印图像H 分成m×m的非重叠图像块,每一个图像块纵向包含红、绿、蓝三层;
第二步:利用上述水印嵌入过程中所提到的Matlab系统内置函数randperm生成的伪随*
机序列选择出含水印的图像块A ;
*
第三步:将纵向包含红、绿、蓝三层的含水印图像块A 转换为含水印的四元数实表示矩R** R**
阵A ,根据公式(5),对含水印的四元数实表示矩阵A 的第一列块 进行纯四元数*
Schur分解,得到四元数实表示酉矩阵的第一列块U 和四元数实表示上三角矩阵的第一列*
块V ;
* *
[U ,V ]=QSchur( ) (5)其中, ,A1=zeros(m,m),zeros(m,m)是产生一个m** * **
×m的零矩阵函数,m是图像块的尺寸大小,A2 为含水印图像块A 红色通道的像素值,A3 为* ** *
含水印图像块A 绿色通道的像素值,A4 为含水印图像块A 蓝色通道的像素值;
第四步:利用公式(6),提取含水印的四元数实表示矩阵的第一列块 中所含有的水*
印wi ;
(6)* *
其中,U (x,1)是U 在第x行第1列的值,x∈{p,q},p=i×m+2,q=i×m+3,i=1, 2, 3分别表示红、绿、蓝三层,m是图像块的尺寸大小,abs(.)是绝对值函数;
第五步:重复执行第三步到第四步,直到提取出所有的二进制水印位为止,然后得到提*
取的分层二进制水印序列SWi ,再把每8位二进制信息作为一组转换成十进制的像素值,其中i=1, 2, 3分别表示红、绿、蓝三层;
第六步:对转化后的每层十进制像素值执行基于密钥Kai和Kbi的逆二维Logistic混沌*
映射,获得分层水印图像Wi ,其中i=1, 2, 3分别表示红、绿、蓝三层;
* *
第七步:组合获得的分层水印图像Wi 形成最终的提取水印图像W ,其中i=1, 2, 3分别表示红、绿、蓝三层。