【技术实现步骤摘要】
一种可逆鲁棒空域彩色数字图像水印方法
[0001]本专利技术属于信息安全
,涉及强鲁棒性和高实时性的彩色数字图像的版权保护和完整性认证。
技术介绍
[0002]随着互联网的快速发展,信息的获取和传播越来越便捷,但同时侵权行为也变的更加容易,严重损害产权所有者的利益,由此可见,数字版权保护刻不容缓。于是,数字水印作为版权保护的一种有效方法,受到越来越多研究者的关注。
[0003]对于大多数数字水印方法,载体图像在水印嵌入后会有一定程度的失真,在水印提取后无法恢复到其原始形式,而可逆水印的特点和目标就是精确恢复载体图像,一般用于重要图像的无失真保护,在军事图像、医学图像上有着重要的应用价值。
[0004]目前大多数可逆水印方法是针对灰度图像的,而在日常生活中,彩色图像凭借其信息量更大和视觉效果更佳的优势,成为多媒体大数据传播的主要载体;随着大数据的快速发展和5G网络的普及,现在数字信息的处理都追求高实时性,因此设计一种不可见性好、鲁棒性强且实时性高的可逆彩色图像数字水印方法成为当前数字水印技术的热点和难点之一。
技术实现思路
[0005]本专利技术的目的是提供一种可逆鲁棒空域彩色数字图像水印方法,其特征在于通过具体的水印嵌入、载体图像恢复和水印提取三个过程来实现的,其水印嵌入过程描述如下:第一步:对一幅大小为M
×
M的彩色载体图像H作降维处理,得到红、绿、蓝三个分层载体图像H
i
,并将各分层载体图像H
i
分成大小为m
×< ...
【技术保护点】
【技术特征摘要】
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分别表示...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。