1.基于矩阵Schur分解的可变步长彩色图像盲水印方法,包含彩色图像数字水印的嵌入过程和提取过程,其水印嵌入的具体过程描述如下:Step1:彩色宿主图像的预处理:将大小为M×M的24位彩色宿主图像H作降维处理,得到红、绿、蓝三层颜色通道Hp,并将各颜色通道中的像素划分为m×m的非重叠像素块,p=1,2,
3,分别表示红、绿、蓝三层颜色通道;
Step2:彩色水印图像的预处理:对大小为N×N的24位彩色水印图像W作降维处理,得到红、绿、蓝三层颜色通道,随之将每层颜色通道进行基于私钥Kp的仿射变换得到置乱后的颜色通道Wp,p=1,2,3,分别表示红、绿、蓝三层颜色通道;然后,将各层颜色通道Wp中的每个十进制像素值转换为一个8位的二进制序列;
Step3:嵌入水印的形成:按照红、绿、蓝的先后层序且每层以先行后列的顺序,将每8位二进制序列的高两位拼接为字符串str,复制三倍并保存在水印字符串wbit1中;按照红、绿、蓝的先后层序且每层以先行后列的顺序,将每8位二进制序列的中三位、低三位分别拼接为水印字符串wbit2、wbit3;
Step4:利用选块矩阵position从Hp中选择像素块schurblock,选块矩阵position由系统内置函数randperm伪随机生成,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step5:根据公式(1),对像素块schurblock进行Schur分解,得到酉矩阵U和上三角矩阵V,上三角矩阵V的前r个主对角元素V(i,i)分别为像素块schurblock的第i个特征值 ,i=
1,2,…,r,r表示像素块schurblock的秩;
(1)
Step6:按照先后顺序从水印字符串中选取水印位wt,利用公式(2)求得量化值add;
(2)
其中, 为像素块schurblock所有特征值的和,i=1,2,…,r,r表示像素块schurblock的秩,mod(.)为求余函数,Tp为量化步长,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
*
Step7:利用公式(3)求得特征值 ,并用其替换原特征值 ,得到上三角矩阵V ;
(3)
其中,权值 ,i=1,2,…,r,r表示像素块schurblock的秩;
*
Step8:利用公式(4)进行逆Schur分解,得到含水印像素块schurblock ;
(4)
Step9:重复执行Step4‑Step8,直到所有的水印位都被嵌入为止;最后重组三层含水印* *的颜色通道Hp 得到含水印彩色宿主图像H ;
所述水印提取的具体过程描述如下:
*
Step1:彩色含水印宿主图像的预处理:将含水印彩色宿主图像H 作降维处理,得到红、*绿、蓝三层含水印的颜色通道Hp ,并将各颜色通道中的像素划分为m×m的非重叠像素块,p=
1,2,3,分别表示红、绿、蓝三层颜色通道;
* *
Step2:利用选块矩阵position从颜色通道Hp 中选择含水印像素块schurblock ,选块矩阵position由系统内置函数randperm伪随机生成,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
* *
Step3:根据公式(5),对含水印像素块schurblock 进行Schur分解,得到酉矩阵U 和上* * * *三角矩阵V ,上三角矩阵V 的前r个主对角元素V (i,i)分别为含水印像素块schurblock 的*第i个特征值 ,i=1,2,…,r,r表示含水印像素块schurblock 的秩;
(5)
* *
Step4:利用公式(6)提取含水印像素块schurblock 中含有的水印位wt : (6)
*
其中,mod(.)为求余函数, 为含水印像素块schurblock 所有特征值的和,Tp为量化步长,p=1,2,3,分别表示红、绿、蓝三层颜色通道;
Step5:重复执行Step2‑Step4,直到提取所有的水印位,这样就得到了含水印字符串* * *str 、wbit2、wbit3;
*
Step6:将str 均分为三个序列,并以大数原则依次计算对应位置的水印信息,得到含水*印字符串wbit1;
* * *
Step7:依次取wbit1的两位、wbit2 及wbit3的三位组成8位二进制序列并转换成十进制的像素值,重复以上操作,直到所有的序列都被转换为十进制,并依次将其拼成一个十进*制数列,将该十进制数列均分为三段,分别重塑为N×N的红、绿、蓝三层颜色通道Wp ,p=1,2,
3,分别表示红、绿、蓝三层颜色通道;
Step8:将每层颜色通道进行基于私钥Kp的逆仿射变换,并重组为最终提取的彩色水印*图像W 。