[发明专利]基于汉明码、特征值分解和图像矫正的彩色盲水印方法有效
申请号: | 202010011773.5 | 申请日: | 2020-01-07 |
公开(公告)号: | CN111223035B | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 苏庆堂;刘得成;袁子涵;张雪婷 | 申请(专利权)人: | 鲁东大学 |
主分类号: | G06T1/00 | 分类号: | G06T1/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 264025 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 汉明码 特征值 分解 图像 矫正 彩色 水印 方法 | ||
1.一种基于汉明码、特征值分解和图像矫正的彩色盲水印方法,其特征在于通过4个过程来实现的,具体包括预处理过程、水印嵌入过程、图像矫正过程和水印提取过程:
过程1:预处理过程,其具体步骤描述如下:
Step 1:彩色宿主图像的预处理:对大小为M×M×3的三维彩色宿主图像H作降维处理,得到红、绿、蓝三个二维的分层宿主图像Hp,并将各层中的像素划分为m×m的非重叠像素块,p=1,2,3分别表示红、绿、蓝三层;
Step 2:彩色水印图像的预处理:对大小为N×N×3的三维彩色水印图像W作降维处理,得到红、绿、蓝三个二维的分层水印图像,随之对每层水印图像进行基于私钥Kp的仿射变换得到置乱后的分层水印图像Wp;然后,将各分层水印图像Wp中的每个十进制像素值转换为一个8位的二进制序列,并依次拼接为二进制水印序列wbp;最后,将二进制水印序列wbp的每4位编码为7位的汉明纠错码,并依次拼接为水印纠错码序列whp,p=1,2,3分别表示红、绿、蓝三层;
过程2:水印嵌入过程,其具体步骤描述如下:
Step 1:选择像素块:在上述预处理过程之后,利用选块矩阵SE从分层宿主图像Hp中选择大小为m×m的像素块evdblock,其中,选块矩阵SE由伪随机函数randperm(.)生成,p=1,2,3分别表示红、绿、蓝三层;
Step 2:对像素块进行特征值分解:利用公式(1)将像素块evdblock分解为酉矩阵U和对角矩阵G,其中,对角矩阵G中的主对角元素G(i,i)即为像素块evdblock第i个特征值;
[U,G]=eig(evdblock) (1)
其中,eig(.)为特征值分解函数,i=1,2,...,m,m为宿主图像像素块的大小;
Step 3:求特征值绝对值的和:利用公式(2)对像素块的所有特征值进行计算,得到特征值绝对值的和sumevd;
其中,abs(.)为取绝对值函数;
Step 4:嵌入水印位:依次从纠错码序列whp中取一位信息w,利用公式(3)修改特征值绝对值的和sumevd,得到修改后的特征值绝对值的和sumevd*;
其中,mod(.)为取余函数,Tp为第p层的量化步长,α为量化系数,p=1,2,3分别表示红、绿、蓝三层;
Step 5:修改像素块的特征值:利用公式(4),将增量Δi分配到对应的特征值上;
G*(i,i)=sign(G(i,i))×[abs(G(i,i))+Δi] (4)
其中,sign(.)为取符号函数,Δi=(sumevd*-sumevd)×abs(G(i,i))/sumevd,i=1,2,...,m;
Step 6:逆特征值分解:利用公式(5)对酉矩阵U和修改后的对角矩阵G*进行逆特征值分解,得到含水印的像素块evdblock*;
evdblock*=U×G*×U+ (5)
其中,U+为酉矩阵U的广义逆矩阵;
Step 7:重复执行本过程中的Step 1到Step 6,直到所有的信息嵌入完成为止,此时就得到了含水印的分层宿主图像Hp*,最后重组含水印的分层宿主图像Hp*,并得到含水印的彩色宿主图像H*;
过程3:图像矫正过程,该过程包含计算几何属性、判断几何攻击类型和矫正被攻击图像三个子过程,各子过程的具体步骤描述如下:
1)计算几何属性:计算含水印宿主图像受几何攻击后所得内部有效图像的各边长、各边长与水平线的夹角及其四个内角的度数;
Step 1:按照从上到下,从右到左的顺序遍历被攻击的含水印宿主图像I*的B层图像的像素点,找到第一个大于阈值Q的像素点记为顶点A(x1,y1);
Step 2:按照从下到上,从左到右的顺序遍历被攻击的含水印宿主图像I*的B层图像的像素点,找到第一个大于阈值Q的像素点记为顶点C(x3,y3);
Step 3:遍历内部有效图像的所有像素点,以AC连线中点的列坐标为界限,分别确定另两个顶点B、D;其中,若距离最大点的列坐标小于AC连线中点列坐标的像素点记为顶点D(x4,y4),若距离最大点的列坐标大于等于AC连线中点列坐标的像素点记为顶点B(x2,y2);
Step 4:利用两点间的距离公式,分别求出四个边长的长度,分别记为l1=|AB|,l2=|BC|,l3=|CD|,l4=|DA|;
Step 5:利用反正切函数,分别计算边长AB、BC、CD、DA与水平线的夹角,依次记为α1,α2,α3,α4;
Step 6:根据各边长与水平线的夹角,分别计算内部有效图像四个内角的度数,分别记为β1=∠BAD,β2=∠CBA,β3=∠DCB,β4=∠ADC;
2)判断几何攻击类型:假设已知原始宿主图像H的行数为MR、列数为MC,被攻击的含水印宿主图像I*的行数为NR、列数为NC;然后,根据内部有效图像的边角信息,判断几何攻击的类型,具体分为以下7种情况;
(1)若α1,α2,α3,α4≠90°,且β1,β2,β3,β4=90°,且(或),且且则含水印宿主图像I*所受攻击的类型为旋转攻击,其中,abs(.)为取绝对值函数,ξ为整数阈值,0≤ξ≤10;
(2)若(α1,α3=0°且α2,α4=90°)或(α1,α3=90°且α2,α4=0°),且β1,β2,β3,β4=90°,且(或),且且则含水印宿主图像I*所受攻击的类型为缩小攻击,其中,abs(.)为取绝对值函数,ξ为整数阈值,0≤ξ≤10;
(3)若(α1,α3=0°且α2,α4=90°)或(α1,α3=90°且α2,α4=0°),且β1,β2,β3,β4=90°,且(或),且且则含水印宿主图像I*所受攻击的类型为放大攻击,其中,abs(.)为取绝对值函数,ξ为整数阈值,0≤ξ≤10;
(4)若(α1,α3=0°且α2,α4=90°)或(α1,α3=90°且α2,α4=0°),且β1,β2,β3,β4=90°,且(或),且(或),则含水印宿主图像I*所受攻击的类型为平移变换攻击,其中,abs(.)为取绝对值函数,ξ为整数阈值,0≤ξ≤10;
(5)若(α1,α3≠0°且α2,α4≠90°)或(α1,α3≠90°且α2,α4≠0°),且β1,β2,β3,β4≠90°,则含水印宿主图像I*所受攻击的类型为仿射变换攻击;
(6)若(α1,α3≠0°且α2,α4=90°)或(α1,α3=90°且α2,α4≠0°),且β1,β2,β3,β4≠90°,则含水印宿主图像I*所受攻击的类型为水平剪切攻击;
(7)若(α1,α3=0°且α2,α4≠90°)或(α1,α3≠90°且α2,α4=0°),且β1,β2,β3,β4≠90°,则含水印宿主图像I*所受攻击的类型为垂直剪切攻击;
3)矫正被攻击图像:根据上述判断得出的几何攻击类型,矫正含水印宿主图像I*,具体分为以下7种情况;
(1)矫正旋转攻击后的图像:根据α1,α2,α3,α4,计算图像逆时针旋转的角度angle,然后,调用旋转函数imrotate(.),逆时针旋转-angle角度,最后去除黑色边缘,并将得到的内部有效图像调整到大小为M×M×3的三维含水印彩色宿主图像IC*;
(2)矫正缩小攻击后的图像:根据边长ll、l2、l3、l4,计算图像缩小比例,调用图像尺寸调整函数imresize(.),得到已矫正的大小为M×M×3的三维含水印彩色宿主图像IC*;
(3)矫正放大攻击后的图像:根据边长l1、l2、l3、l4,计算图像放大比例,调用图像尺寸调整函数imresize(.),得到已矫正的大小为M×M×3的三维含水印彩色宿主图像IC*;
(4)矫正平移变换攻击后的图像:根据顶点A、B、C、D,计算经过各顶点的内部有效图像边界的数量,并确定平移变换的类型,最后进行相应的逆平移变换,得到已矫正的大小为M×M×3的三维含水印彩色宿主图像IC*;
(5)矫正仿射变换攻击后的图像:确定仿射变换矩阵其中,计算仿射变换矩阵的逆矩阵AF-1并调用图像变换函数imtransform(.),得到已矫正的大小为M×M×3的三维含水印彩色宿主图像IC*;
(6)矫正水平剪切攻击后的图像:水平剪切攻击没有缩放因子,因此,仿射变换矩阵AF中的元素a=1,d=1;水平剪切攻击时的元素c=0,然后,计算仿射变换矩阵AF的逆矩阵AF-1,最后调用图像变换函数imtransform(.),得到已矫正的大小为M×M×3的三维含水印彩色宿主图像IC*;
(7)矫正垂直剪切攻击后的图像:垂直剪切攻击也没有缩放因子,因此,仿射变换矩阵AF中的元素a=1,d=1;垂直剪切攻击时的元素b=0,然后,计算仿射变换矩阵AF的逆矩阵AF-1,最后调用图像变换函数imtransform(.),得到已矫正的大小为M×M×3的三维含水印彩色宿主图像IC*;
过程4:水印提取过程,其具体步骤描述如下:
Step 1:针对上述图像矫正过程获得的大小为M×M×3的三维含水印彩色宿主图像IC*,执行本方法预处理过程中的Step 1,得到分层的含水印宿主图像ICp*及其m×m的非重叠像素块,其中,p=1,2,3分别表示红、绿、蓝三层;
Step 2:选择含水印像素块:利用选块矩阵SE从分层宿主图像ICp*中选择含水印像素块evdblock*,其中,选块矩阵SE由伪随机函数randperm(.)生成,p=1,2,3分别表示红、绿、蓝三层;
Step 3:对含水印像素块evdblock*进行特征值分解:利用公式(6)将像素块evdblock*分解为酉矩阵U*和对角矩阵G*;
[U*,G*]=eig(evdblock*) (6)
其中,eig(.)为特征值分解函数,对角矩阵G*中的主对角元素G*(i,i)为像素块evdblock*的第i个特征值,i=1,2,...,m;
Step 4:求特征值绝对值的和:利用公式(7)对含水印像素块的所有特征值进行计算,得到特征值绝对值的和sumevd*;
其中,abs(.)为取绝对值函数;
Step 5:提取水印信息:利用公式(8)提取水印信息w*;
其中,mod(.)为取余函数,Tp为第p层的量化步长,p=1,2,3分别表示红、绿、蓝三层;
Step 6:重复执行本过程中的Step 2到Step 5,直到所有的水印信息均被提取为止,此时,所有的水印信息即为含水印的汉明纠错码序列whp*,p=1,2,3分别表示红、绿、蓝三层;
Step 7:针对含水印的汉明纠错码序列whp*,执行本方法预处理过程中Step 2的逆处理,得到最终的提取水印W*。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于鲁东大学,未经鲁东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010011773.5/1.html,转载请声明来源钻瓜专利网。