1.本发明属于信息安全技术领域,涉及强鲁棒性和高实时性的彩色数字图像的版权保护和完整性认证。
背景技术:
2.随着互联网的快速发展,信息的获取和传播越来越便捷,但同时侵权行为也变的更加容易,严重损害产权所有者的利益,由此可见,数字版权保护刻不容缓。于是,数字水印作为版权保护的一种有效方法,受到越来越多研究者的关注。
3.对于大多数数字水印方法,载体图像在水印嵌入后会有一定程度的失真,在水印提取后无法恢复到其原始形式,而可逆水印的特点和目标就是精确恢复载体图像,一般用于重要图像的无失真保护,在军事图像、医学图像上有着重要的应用价值。
4.目前大多数可逆水印方法是针对灰度图像的,而在日常生活中,彩色图像凭借其信息量更大和视觉效果更佳的优势,成为多媒体大数据传播的主要载体;随着大数据的快速发展和5g网络的普及,现在数字信息的处理都追求高实时性,因此设计一种不可见性好、鲁棒性强且实时性高的可逆彩色图像数字水印方法成为当前数字水印技术的热点和难点之一。
技术实现要素:
5.本发明的目的是提供一种可逆鲁棒空域彩色数字图像水印方法,其特征在于通过具体的水印嵌入、载体图像恢复和水印提取三个过程来实现的,其水印嵌入过程描述如下:第一步:对一幅大小为m
×
m的彩色载体图像h作降维处理,得到红、绿、蓝三个分层载体图像hi,并将各分层载体图像hi分成大小为m
×
m的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:对一幅大小为n
×
n的彩色水印图像w作降维处理,得到红、绿、蓝三个分层水印图像wi;同时,为了提高水印的安全性,对每个分层水印图像wi进行基于密钥kai的logistic混沌映射,得到置乱后的三个分层水印图像wli;最后,将置乱后的分层水印图像wli中的每个十进制像素值转换为8位二进制数,并依次连接成分层水印位序列swi,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列在分层载体图像hi中选择随机位置的像素块block;第四步:根据公式(1),在空域中直接计算出像素块block经过离散傅里叶变换后的直流分量dc;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,m为像素块block的行(列)大小,f(x, y)为像素块第x行第y列的像素值;第五步:按照先后顺序依次从分层水印位序列swi中选取待嵌入水印位w;根据待
嵌入水印位w和公式(2)、(3),在空域中计算两个量化边界值dc
low
和dc
high
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中,floor(.)为向下取整函数,t为量化步长;第六步:利用公式(4)选择最优的量化值dc';
ꢀꢀꢀꢀꢀꢀ
(4)其中,abs(.)为绝对值函数;第八步:利用公式(7)计算得到像素块block内修改后的各像素值f
*
(x, y),并保存到临时含水印像素块temp中的相应位置;f
*
(x, y)=f(x, y)+tt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)第九步:利用公式(8)对临时含水印像素块temp中的各像素值f
*
(x, y)进行溢出判断,若溢出,则对应地修改直流系数改变量change得到新的直流系数改变量change
*
,并利用公式(9)得到每个像素的新的改变量tt
*
,并将其更新到矩阵tc中的相应位置,再利用公式(10)求得溢出处理后各像素值f
**
(x, y),并用其替换临时含水印像素块temp相应位置处的像素值f
*
(x, y),即可得到最终的含水印像素块block
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)tt
*
=floor(change
*
/(m
×
m))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)f
**
(x, y)=f(x, y)+tt
*
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)其中,t为量化步长,floor(.)为向下取整函数,m为像素块的行(列)的大小;第十步:将含水印像素块block
*
更新到其在分层载体图像hi中的相应位置,其中i=1, 2, 3分别表示红、绿、蓝三层;第十一步:重复执行本过程的第三步到第十步,直到所有的水印信息都被嵌入完成为止,由此得到含水印的分层载体图像h
i*
;组合含水印的分层载体图像h
i*
得到含水印图像h
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;其载体图像恢复过程描述如下:第一步:通过降维处理将含水印图像h
*
分成红、绿、蓝三个含水印的分层载体图像h
i*
;同时,将每个含水印的分层载体图像h
i*
分成大小为m
×
m的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列从含水印的分层载体图像h
i*
中选择含水印像素块block
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:根据嵌入水印过程中生成的矩阵tc,获取该像素块的像素改变量tt,再根
据公式(11)恢复原始载体像素块block
**
;block
**
=block
*-tt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)第四步:将恢复的载体像素块block
**
更新到其在恢复的分层载体图像h
i**
中的相应位置,其中i=1, 2, 3分别表示红、绿、蓝三层;第五步:重复执行本过程的第二步到第四步,直到所有的含水印像素块都已恢复出载体图像像素块为止,由此得到恢复的分层载体图像h
i**
,其中i=1, 2, 3分别表示红、绿、蓝三层;第六步:组合三层恢复出的载体图像h
i**
得到恢复出的载体图像h
**
,其中i=1, 2, 3分别表示红、绿、蓝三层;其水印提取过程描述如下:第一步:通过降维处理将含水印图像h
*
分成红、绿、蓝三个含水印的分层载体图像h
i*
;同时,将每个含水印的分层载体图像h
i*
分成大小为m
×
m的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列从含水印的分层载体图像h
i*
中选择含水印像素块block
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:根据公式(12),在空域中直接计算出含水印像素块block
*
经过离散傅里叶变换后的直流分量dc
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)其中,m为含水印像素块block
*
的行(列)的大小,f
*
(x, y)为含水印像素块block
*
第x行第y列的像素值;第四步:利用公式(12)计算得到的直流分量dc
*
和公式(13),提取含水印像素块block
*
中所含有的水印位w
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)其中,mod(.)为取余函数,round(.)为四舍五入函数,t为量化步长;第五步:重复执行本过程的第二步到第四步,直到提取出所有的二进制水印位为止,得到提取的二进制水印位序列sw
i*
,然后,依次将提取的二进制水印位序列sw
i*
中的每8位二进制信息划分为一组并转换成十进制的像素值,最终形成提取的分层置乱水印图像wl
i*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第六步:对提取的分层置乱水印图像wl
i*
进行基于密钥kai的逆logistic混沌映射,获得提取的分层水印图像w
i*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第七步:组合提取的分层水印图像w
i*
形成最终的提取水印图像w
*
,其中i=1, 2, 3分别表示红、绿、蓝三层。
6.本方法利用离散傅里叶变换最大能量系数的空域快速计算方法及其系数变化量在空域像素中的分配规律,在空域中完成了彩色数字水印的嵌入与盲提取;同时,在不受攻击的情况下,本方法能从含水印图像中完全恢复原始载体图像,具有较高的不可见性、较强的鲁棒性和较高的执行效率。
附图说明
7.图1(a)、图1(b)是两幅原始彩色载体图像。
8.图2(a)、图2(b)是两幅原始彩色水印图像。
9.图3(a)、图3(b)是将图2(a)所示的水印依次嵌入到载体图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度ssim值依次是0.9813、0.9872,其峰值信噪比psnr值依次是43.5807db、43.8107db。
10.图4(a)、图4(b)是依次从图3(a)、图3(b)中提取的水印,其归一化互相关系数nc值分别是1.0000、1.0000。
11.图5(a)、图5(b)是依次从图3(a)、图3(b)中恢复的载体图像,其峰值信噪比psnr值依次是∞、∞。
12.图6(a)、图6(b)、图6(c)、图6(d)、图6(e)、图6(f)是将图3(a)所示的含水印图像依次进行jpeg压缩(70)、jpeg 2000压缩(5:1)、椒盐噪声(1%)、高斯低通滤波(3
×
3)、剪切(12.5%)、缩放(50%)等攻击后所提取的水印,其归一化互相关系数nc值分别是0.9679、1.0000、0.9839、0.9863、0.9358、0.9903。
13.图7(a)、图7(b)是将图2(b)所示的水印依次嵌入到载体图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度ssim值依次是0.9807、0.9867,其峰值信噪比psnr值依次是43.5132db、43.7758db。
14.图8(a)、图8(b)是依次从图7(a)、图7(b)中提取的水印,其归一化互相关系数nc值分别是1.0000、1.0000。
15.图9(a)、图9(b)是依次从图7(a)、图7(b)中恢复的载体图像,其峰值信噪比psnr值依次是∞、∞。
16.图10(a)、图10(b)、图10(c)、图10(d)、图10(e)、图10(f)是将图7(a)所示的含水印图像依次进行jpeg压缩(70)、jpeg 2000压缩(5:1)、椒盐噪声(1%)、高斯低通滤波(3
×
3)、剪切(12.5%)、缩放(50%)等攻击后所提取的水印,其归一化互相关系数nc值分别是0.9797、1.0000、0.9914、0.9926、0.9565、0.9581。
具体实施方式
17.本发明的目的是提供一种可逆鲁棒空域彩色数字图像水印方法,其特征在于通过具体的水印嵌入、载体图像恢复和水印提取三个过程来实现的,其水印嵌入过程描述如下:第一步:对一幅大小为512
×
512的彩色载体图像h作降维处理,得到红、绿、蓝三个分层载体图像hi,并将各分层载体图像hi分成大小为2
×
2的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:对一幅大小为32
×
32的彩色水印图像w作降维处理,得到红、绿、蓝三个分层水印图像wi;同时,为了提高水印的安全性,对每个分层水印图像wi进行基于密钥kai的logistic混沌映射,得到置乱后的三个分层水印图像wli;最后,将置乱后的分层水印图像wli中的每个十进制像素值转换为8位二进制数(例如:可将十进制数125转换为二进制序列
‘
01111101’),并依次连接成分层水印位序列swi,swi的长度为8
×
322=8192,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列在分层载
体图像hi中选择随机位置的像素块block;此处,设选择的嵌入像素块block=;第四步:根据公式(1),在空域中直接计算出像素块block经过离散傅里叶变换后的直流分量dc;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,m为像素块block的行(列)大小,f(x, y)为像素块第x行第y列的像素值;此处,像素块block的行(列)的大小为m=2,计算得到的像素块block的直流分量dc=1018;第五步:按照先后顺序依次从分层水印位序列swi中选取待嵌入水印位w;根据待嵌入水印位w和公式(2)、(3),在空域中计算两个量化边界值dc
low
和dc
high
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中,floor(.)为向下取整函数,t为量化步长;此处,t=64,选取的水印位w='1',计算得到两个量化边界值dc
low
=976,dc
high
=1040;第六步:利用公式(4)选择最优的量化值dc';
ꢀꢀꢀꢀꢀꢀꢀ
(4)其中,abs(.)为绝对值函数;此处,计算得到的量化值dc'=dc
high
=1040;第七步:利用公式(5)和公式(6),计算直流系数改变量change和每个像素的改变量tt,并将tt保存到矩阵tc中;change= dc'-dc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)tt=floor(change/(m
×
m))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,m为像素块的行(列)的大小,floor(.)为向下取整函数;此处,直流系数改变量change=22,每个像素的改变量tt=5;第八步:利用公式(7)计算得到像素块block内修改后的各像素值f
*
(x, y),并保存到临时含水印像素块temp中的相应位置;f
*
(x, y)=f(x, y)+tt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)此处,计算得到像素块block修改后的各像素值f
*
(1, 1)=260,f
*
(1, 2)=260,f
*
(2, 1)=259,f
*
(2, 2)=259,则临时含水印像素块temp
*=
;第九步:利用公式(8)对临时含水印像素块temp中的各像素值f
*
(x, y)进行溢出
判断,若溢出,则对应地修改直流系数改变量change得到新的直流系数改变量change
*
,并利用公式(9)得到每个像素的新的改变量tt
*
,并将其更新到矩阵tc中的相应位置,再利用公式(10)求得溢出处理后各像素值f
**
(x, y),并用其替换临时含水印像素块temp相应位置处的像素值f
*
(x, y),即可得到最终的含水印像素块block
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)tt
*
=floor(change
*
/(m
×
m))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)f
**
(x, y)=f(x, y)+tt
*
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)其中,floor(.)为向下取整函数;此处,根据公式(8)判断临时含水印像素块temp中各像素值f
*
(x, y),其中f
*
(1,1)=260》255已经溢出,则修改直流系数改变量change得到新的直流系数改变量change
*
=-42,同时,根据公式(9)计算得到新的每个像素的改变量tt
*
=-11,根据公式(10)再次修改原始像素块block内各像素值,得到最终含水印的像素值f
**
(1,1)=244,f
**
(1,2)=244,f
**
(2,1)=243,f
**
(2,2)=243,并用其替换临时含水印像素块相应位置处的像素值f
*
(x, y),得到最终的含水印像素块blcok
*
=;第十步:将含水印像素块block
*
更新到其在分层载体图像hi中的相应位置,其中i=1, 2, 3分别表示红、绿、蓝三层;第十一步:重复执行本过程的第三步到第十步,直到所有的水印信息都被嵌入完成为止,由此得到含水印的分层载体图像h
i*
;组合三层含水印的分层载体图像h
i*
得到含水印图像h
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;其载体图像恢复过程描述如下:第一步:通过降维处理将含水印图像h
*
分成红、绿、蓝三个含水印的分层载体图像h
i*
;同时,将每个含水印的分层载体图像h
i*
分成大小为2
×
2的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列从含水印的分层载体图像h
i*
中选择含水印像素块block
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;此处,选择的含水印像素块block
*
=;第三步:根据嵌入水印过程中生成的矩阵tc,获取该像素块的像素改变量tt,再根据公式(11)恢复原始载体像素块block
**
;block
**
=block
*-tt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)此处,含水印像素块blcok
*
=,从矩阵tc中获取到的每个像素的改变量tt=-11,根据公式(11)计算得到恢复后的原始载体像素块blcok
**
=;第四步:将恢复的载体像素块block
**
更新到其在恢复的分层载体图像h
i**
中的相
应位置,其中i=1, 2, 3分别表示红、绿、蓝三层;第五步:重复执行本过程的第二步到第四步,直到所有的含水印像素块都已恢复出载体图像像素块为止,由此得到恢复的分层载体图像h
i**
;第六步:组合三层恢复出的分层载体图像h
i**
得到恢复出的载体图像h
**
,其中i=1, 2, 3分别表示红、绿、蓝三层;其水印提取过程描述如下:第一步:通过降维处理将含水印图像h
*
分成红、绿、蓝三个含水印的分层载体图像h
i*
;同时,将每个含水印的分层载体图像h
i*
分成大小为2
×
2的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列从含水印的分层载体图像h
i*
中选择含水印像素块block
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:根据公式(12),在空域中直接计算出含水印像素块block
*
经过离散傅里叶变换后的直流分量dc
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)其中,m为含水印像素块block
*
的行(列)的大小,f
*
(x, y)为含水印像素块block
*
第x行第y列的像素值;此处,含水印像素块block
*
的行(列)的大小为m=2,计算得到含水印像素块block
*
经过离散傅里叶变换后的直流分量dc
*
=974;第四步:根据计算得到的直流分量dc
*
,利用公式(13)从中提取水印位w
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)其中,mod(.)为取余函数,round(.)为四舍五入函数,t为量化步长;此处,直流分量dc
*
=974,量化步长t=64,根据公式(13),mod(round(dc
*
),t)=14《0.5
×
t=32,提取出水印位w
*
='1';第五步:重复执行本过程的第二步到第四步,直到提取出所有的二进制水印位为止,得到提取的二进制水印位序列sw
i*
,然后,依次将提取的二进制水印位序列sw
i*
中每8位二进制信息划分为一组并转换成十进制的像素值,最终形成提取的分层置乱水印图像wl
i*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第六步:对提取的分层置乱水印图像wl
i*
进行基于密钥kai的逆logistic混沌映射,获得提取的分层水印图像w
i*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第七步:组合提取的分层水印图像w
i*
形成最终的提取水印图像w
*
,其中i=1, 2, 3分别表示红、绿、蓝三层。
18.该方法不但具有较强的水印鲁棒性和较好的载体可逆性,而且具有较高的算法实时性,既适用于彩色图像作为数字水印的高效版权保护,也适用于载体图像的完整性验证。
19.本发明有效性验证为了证明本发明的有效性,选择如图1(a)、图1(b)所示的两幅大小为512
×
512的24位标准彩色图像作为载体图像,并分别用如图2(a)、图2(b)所示的两幅大小为32
×
32的24位彩色图像作为数字水印进行验证。
20.图3(a)、图3(b)是将图2(a)所示的水印依次嵌入到载体图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度ssim值依次是0.9813、0.9872,其峰值信噪比psnr值依次是43.5807db、43.8107db。
21.图4(a)、图4(b)是依次从图3(a)、图3(b)中提取的水印,其归一化互相关系数nc值分别是1.0000、1.0000。
22.图5(a)、图5(b)是依次从图3(a)、图3(b)中恢复的载体图像,其峰值信噪比psnr值依次是∞、∞。
23.图6(a)、图6(b)、图6(c)、图6(d)、图6(e)、图6(f)是将图3(a)所示的含水印图像依次进行jpeg压缩(70)、jpeg 2000压缩(5:1)、椒盐噪声(1%)、高斯低通滤波(3
×
3)、剪切(12.5%)、缩放(50%)等攻击后所提取的水印,其归一化互相关系数nc值分别是0.9679、1.0000、0.9839、0.9863、0.9358、0.9903。
24.图7(a)、图7(b)是将图2(b)所示的水印依次嵌入到载体图像图1(a)、图1(b)后所得到的含水印图像,其结构相似度ssim值依次是0.9807、0.9867,其峰值信噪比psnr值依次是43.5132db、43.7758db。
25.图8(a)、图8(b)是依次从图7(a)、图7(b)中提取的水印,其归一化互相关系数nc值分别是1.0000、1.0000。
26.图9(a)、图9(b)是依次从图7(a)、图7(b)中恢复的载体图像,其峰值信噪比psnr值依次是∞、∞。
27.图10(a)、图10(b)、图10(c)、图10(d)、图10(e)、图10(f)是将图7(a)所示的含水印图像依次进行jpeg压缩(70)、jpeg 2000压缩(5:1)、椒盐噪声(1%)、高斯低通滤波(3
×
3)、剪切(12.5%)、缩放(50%)等攻击后所提取的水印,其归一化互相关系数nc值分别是0.9797、1.0000、0.9914、0.9926、0.9565、0.9581。
28.该算法在平台2.30 ghz cpu,16.0 gb ram,win10,matlab (r2017a)上进行过近万次运行,其数字水印的平均嵌入时间是0.141927秒,平均提取时间是0.097656秒,平均恢复时间是0.058159秒,总计时间为0.297742秒。
29.综上所述,在不受攻击时,可以实现水印的完全提取和载体图像的完全可逆,所嵌入的数字图像水印具有较高的不可见性,满足了水印算法的不可见性要求;同时,从各种受攻击图像中提取的数字图像水印具有较好的可鉴别性和较高的nc值,说明该方法具有较强的鲁棒性;另外,该算法的平均运行总时间小于0.5秒,满足了多媒体大数据快速版权保护的需要。
技术特征:
1.一种可逆鲁棒空域彩色数字图像水印方法,其特征在于通过具体的水印嵌入、载体图像恢复和水印提取三个过程来实现的,其水印嵌入过程描述如下:第一步:对一幅大小为m
×
m的彩色载体图像h作降维处理,得到红、绿、蓝三个分层载体图像h
i
,并将各分层载体图像h
i
分成大小为m
×
m的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:对一幅大小为n
×
n的彩色水印图像w作降维处理,得到红、绿、蓝三个分层水印图像w
i
;同时,为了提高水印的安全性,对每个分层水印图像w
i
进行基于密钥ka
i
的logistic混沌映射,得到置乱后的三个分层水印图像wl
i
;最后,将置乱后的分层水印图像wl
i
中的每个十进制像素值转换为8位二进制数,并依次连接成分层水印位序列sw
i
,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列在分层载体图像h
i
中选择随机位置的像素块block;第四步:根据公式(1),在空域中直接计算出像素块block经过离散傅里叶变换后的直流分量dc;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)其中,m为像素块block的行(列)大小,f(x, y)为像素块第x行第y列的像素值;第五步:按照先后顺序依次从分层水印位序列sw
i
中选取待嵌入水印位w;根据待嵌入水印位w和公式(2)、(3),在空域中计算两个量化边界值dc
low
和dc
high
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)其中,floor(.)为向下取整函数,t为量化步长;第六步:利用公式(4)选择最优的量化值dc';
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)其中,abs(.)为绝对值函数;第七步:利用公式(5)和公式(6),计算直流系数改变量change和每个像素的改变量tt,并将tt保存到矩阵tc中;change= dc'-dc
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)tt=floor(change/(m
×
m))
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)其中,floor(.)为向下取整函数,m为像素块的行(列)的大小;第八步:利用公式(7)计算得到像素块block内修改后的各像素值f
*
(x, y),并保存到临时含水印像素块temp中的相应位置;
f
*
(x, y)=f(x, y)+tt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)第九步:利用公式(8)对临时含水印像素块temp中的各像素值f
*
(x, y)进行溢出判断,若溢出,则对应地修改直流系数改变量change得到新的直流系数改变量change
*
,并利用公式(9)得到每个像素的新的改变量tt
*
,并将其更新到矩阵tc中的相应位置,再利用公式(10)求得溢出处理后各像素值f
**
(x, y),并用其替换临时含水印像素块temp相应位置处的像素值f
*
(x, y),即可得到最终的含水印像素块block
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)tt
*
=floor(change
*
/(m
×
m))(9)f
**
(x, y)=f(x, y)+tt
*
(10)其中,t为量化步长,floor(.)为向下取整函数,m为像素块的行(列)的大小;第十步:将含水印像素块block
*
更新到其在分层载体图像h
i
中的相应位置,其中i=1, 2, 3分别表示红、绿、蓝三层;第十一步:重复执行本过程的第三步到第十步,直到所有的水印信息都被嵌入完成为止,由此得到含水印的分层载体图像h
i*
;组合含水印的分层载体图像h
i*
得到含水印图像h
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;其载体图像恢复过程描述如下:第一步:通过降维处理将含水印图像h
*
分成红、绿、蓝三个含水印的分层载体图像h
i*
;同时,将每个含水印的分层载体图像h
i*
分成大小为m
×
m的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列从含水印的分层载体图像h
i*
中选择含水印像素块block
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第三步:根据嵌入水印过程中生成的矩阵tc,获取该像素块的像素改变量tt,再根据公式(11)恢复原始载体像素块block
**
;block
**
=block
*-tt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)第四步:将恢复的载体像素块block
**
更新到其在恢复的分层载体图像h
i**
中的相应位置,其中i=1, 2, 3分别表示红、绿、蓝三层;第五步:重复执行本过程的第二步到第四步,直到所有的含水印像素块都已恢复出载体图像像素块为止,由此得到恢复的分层载体图像h
i**
,其中i=1, 2, 3分别表示红、绿、蓝三层;第六步:组合三层恢复出的载体图像h
i**
得到恢复出的载体图像h
**
,其中i=1, 2, 3分别表示红、绿、蓝三层;其水印提取过程描述如下:第一步:通过降维处理将含水印图像h
*
分成红、绿、蓝三个含水印的分层载体图像h
i*
;同时,将每个含水印的分层载体图像h
i*
分成大小为m
×
m的非重叠像素块,其中i=1, 2, 3分别表示红、绿、蓝三层;第二步:利用基于密钥kb的md5哈希伪随机选择算法生成的伪随机序列从含水印的分层载体图像h
i*
中选择含水印像素块block
*
,其中i=1, 2, 3分别表示红、绿、蓝三层;
第三步:根据公式(12),在空域中直接计算出含水印像素块block
*
经过离散傅里叶变换后的直流分量dc
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)其中,m为含水印像素块block
*
的行(列)的大小,f
*
(x, y)为含水印像素块block
*
第x行第y列的像素值;第四步:利用公式(12)计算得到的直流分量dc
*
和公式(13),提取含水印像素块block
*
中所含有的水印位w
*
;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)其中,mod(.)为取余函数,round(.)为四舍五入函数,t为量化步长;第五步:重复执行本过程的第二步到第四步,直到提取出所有的二进制水印位为止,得到提取的二进制水印位序列sw
i*
,然后,依次将提取的二进制水印位序列sw
i*
中的每8位二进制信息划分为一组并转换成十进制的像素值,最终形成提取的分层置乱水印图像wl
i*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第六步:对提取的分层置乱水印图像wl
i*
进行基于密钥ka
i
的逆logistic混沌映射,获得提取的分层水印图像w
i*
,其中i=1, 2, 3分别表示红、绿、蓝三层;第七步:组合提取的分层水印图像w
i*
形成最终的提取水印图像w
*
,其中i=1, 2, 3分别表示红、绿、蓝三层。
技术总结
本发明不仅结合了鲁棒水印和可逆水印的特点,还结合了频域水印强鲁棒性和空域水印高实时性的优点,可同时实现数据版权保护和对敏感载体的完整性认证。本发明利用离散傅里叶变换最大能量系数的空域快速计算方法及其系数变化量在空域像素中的分配规律,在空域中使用量化方法完成了彩色数字水印的嵌入与盲提取。本发明将彩色图像数字水印嵌入到彩色载体图像中,在不受攻击时实现了水印的完全提取和载体图像的完全可逆,具有较高的不可见性、较强的鲁棒性和较高的执行效率,适用于快速、高效进行彩色数字图像的版权保护和完整性认证的场合。本发明属于信息安全技术领域,涉及强鲁棒性和高实时性的彩色数字图像的版权保护和完整性认证。完整性认证。完整性认证。
技术研发人员:苏庆堂 曹宏矫 孙叶函 王环英
受保护的技术使用者:鲁东大学
技术研发日:2021.12.03
技术公布日:2022/3/8