预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN112488904A(43)申请公布日2021.03.12(21)申请号202110059404.8(22)申请日2021.01.18(71)申请人鲁东大学地址264025山东省烟台市芝罘区红旗中路186号(72)发明人苏庆堂孙叶函张雪婷王环英(51)Int.Cl.G06T1/00(2006.01)权利要求书2页说明书7页附图3页(54)发明名称基于矩阵奇异值分解的四元数彩色数字图像盲水印方法(57)摘要本发明利用频域数字水印算法鲁棒性强的优点,公开了一种基于矩阵奇异值分解(SingularValueDecomposition,SVD)的四元数彩色数字图像盲水印方法。本发明根据四元数表示的图像在奇异值分解后所得对角矩阵的特点,通过量化对角矩阵的最大特征值来完成彩色数字水印的嵌入与盲提取。本发明将彩色数字水印嵌入到彩色宿主图像中,不但具有较强的鲁棒性,而且具有较好的水印隐蔽性和较大的嵌入容量,解决了大容量彩色图像数字水印算法鲁棒性差的难题,适用于强鲁棒性的大容量数字媒体版权保护的场合。CN112488904ACN112488904A权利要求书1/2页1.一种基于矩阵奇异值分解的四元数彩色数字图像盲水印方法,其特征在于通过具体的水印嵌入过程和提取过程来实现的,其水印嵌入过程描述如下:第一步:彩色图像数字水印的预处理:首先,将一幅大小为N×N的彩色图像数字水印W依照红、绿、蓝三基色的顺序分成3个分层水印图像Wi;然后,将每个分层水印图像进行基于密钥Kai的Arnold置乱变换以提高水印的安全性;最后,将置乱后的分层水印图像中的每个十进制数表示的像素用8位二进制数表示,并依次连接形成长度为8N2的分层水印位序列SWi,其中i=1,2,3,分别表示红、绿、蓝三层;第二步:获取宿主图像的嵌入块:将一幅大小为M×M的原始彩色宿主图像H分成大小为m×m的图像块,每一个图像块纵向包含红、绿、蓝三层;根据分层水印信息长度8N2,利用Matlab系统内置函数randperm生成的伪随机序列在宿主图像H中选择合适位置的图像块,以提高水印抗剪切攻击的鲁棒性,其中3×8N2<=(M×M)/(m×m);第三步:选取一个图像块A,进行是否调整极端像素值的判断,如果图像块A蓝色通道的(1,1)位置上的像素值为0,那么将其像素值改为1;然后,将彩色宿主图像H依照红、绿、蓝三基色的顺序分成3个分层宿主图像Hi,图像块A的每个像素值都通过Hi用四元数表示出来,得到四元数像素块qA,其中i=1,2,3,分别表示红、绿、蓝三层;第四步:根据公式(1),对四元数像素块qA进行奇异值分解(SingularValueDecomposition,SVD),得到左奇异矩阵U、右奇异矩阵V和对角矩阵S,其中S仅在主对角线上有奇异值;[U,S,V]=svd(qA)(1)第五步:从分层水印序列SWi中按先后顺序取出一个嵌入水印信息w,依据该嵌入水印信息及公式(2)求得量化值sq;(2)其中,mval=mod(sm,T),sm是对角矩阵S中的最大值,T为量化步长,mod(.)为求余函数,T1=0.25×T,T2=0.75×T,judge1(mval)是当mval<=T/2+T/8或mval>=T‑T/8时返回true,否则返回false;judge0(mval)是当mval<=T/8或mval>=T/2‑T/8时返回true,否则返回false;第六步:用量化值sq替换sm,得到S*;再利用公式(3)进行逆奇异值分解,得到含水印的四元数像素块qA*;qA*=U×S*×VT(3)第七步:将含水印的四元数像素块qA*转换为含水印的像素块A*,然后进行溢出判断:如果sq≠sm,就按照公式(4)进行溢出判断得到sq*,并用其替换sm*;之后再利用公式(3)进行逆奇异值分解,得到最终的含水印的四元数像素块qA*,再进一步转换为最终的含水印的像素块A*;(4)2CN112488904A权利要求书2/2页其中,sm*是对角矩阵S*中的最大值,T为量化步长,是含水印的像素块A*在第p行第q列的像素值,1≤p,q≤m,m是图像块的尺寸大小;第八步:重复执行上述第三步到第七步,直到所有的水印信息都被嵌入完成为止;最后,获得含水印图像H*;其水印提取过程描述如下:第一步:将含水印图像H*分成m×m的非重叠图像块,每一个图像块纵向包含红、绿、蓝三层;第二步:利用上述水印嵌入过程中所提到的Matlab系统内置函数randperm生成的伪随机序列选择图像块;第三步:选取一个图像块A*,将含水印图像H*依照红、绿、蓝三基色的顺序分成3个分层***含水印图像Hi,图像块A的每个像素值都通过Hi用四元数表示出来,得到含水印的四元数像素块为qA*