一种基于预测误差的可逆数据隐藏方法及系统与流程

文档序号:23855377发布日期:2021-02-05 15:09阅读:59来源:国知局
一种基于预测误差的可逆数据隐藏方法及系统与流程

[0001]
本发明涉及图像加密领域,特别是涉及一种基于预测误差的可逆数据隐藏方法及系统。


背景技术:

[0002]
随着互联网技术的发展,信息在传输过程中也带来了种种的信息安全问题,隐写术是关于信息隐藏,即,不让计划的接收者之外的任何人知道信息的传递事件(而不只是信息的内容)的一门技巧与科学。其中,可逆数据隐藏方法不仅实现了隐秘地将数据隐藏到数字图像中,并且原始图像嵌入数据被提取出后,可以完全恢复。可逆数据隐藏因其可逆的特性有着诸多的应用场景,对保真度要求较高的场合,是理想的选择,例如:军事机密、法律认证以及远程医疗等。可逆数据隐藏的方法中,其中基于预测误差的方法具有较好的性能体现。
[0003]
当然现有的基于预测误差的可逆数据隐藏技术也存在许多缺陷。目前的可逆数据隐藏算法存在以下缺陷:(1)较大的嵌入容量,会使图像失真变大。(2) 算法复杂,时间复杂度高。(3)隐藏算法的安全性。


技术实现要素:

[0004]
本发明的目的是提供一种基于预测误差的可逆数据隐藏方法及系统,有效解决大容量数据嵌入的时候图像失真的问题。
[0005]
为实现上述目的,本发明提供了如下方案:
[0006]
一种基于预测误差的可逆数据隐藏方法,所述方法包括:
[0007]
对图像进行分区,得到阴影部分和空白部分;
[0008]
对所述阴影部分进行第一层嵌入处理;
[0009]
对所述空白部分进行多层嵌入处理;
[0010]
提取所述多层嵌入处理后的空白部分的最外层信息;
[0011]
提取所述第一层嵌入处理后的阴影部分的信息。
[0012]
可选的,所述对图像进行分区具体包括:
[0013]
对所述图像由左至右由上至下进行扫描,得到图像的原始像素序列 {c1,c2,

,c
n
};
[0014]
将所述原始像素序列进行分区,得到空白部分{a1,a2,

,a
n
}和阴影部分 {x1,x2,

,x
n
}。
[0015]
可选的,对所述阴影部分进行第一层嵌入处理具体包括:
[0016]
以所述阴影部分的周边像素对中心像素进行预测,得到第一层加密预测值;所述阴影部分像素的第一行、第一列、最后一行以及最后一列都不进行预测;
[0017]
具体采用以下公式:
[0018][0019]
其中,公式(1)表示通过周边像素对中心像素进行预测,其中,i,j分别表示当前像素所在位置的行和列,{a1,a2,

,an}在第一层嵌入中均为原始像素值,为一维的预测值序列,预测值为整数;
[0020]
计算当前像素的原始像素值与所述第一层加密预测值的差值,得到第一预测误差值序列(e1,

,en),具体采用以下公式:
[0021]
其中,xi表示当前像素的原始像素值,表示第一层加密预测值;
[0022]
计算所述第一预测误差值序列中每一个值的频率,生成第一预测误差直方图;
[0023]
获取附加信息;所述附加信息包括:秘密信息长度和压缩的位置图大小;
[0024]
将所述附加信息嵌入到原始图像像素的第一行;
[0025]
将秘密信息b∈{0,1}嵌入到预先设定的预测误差值范围内,得到经过拓展和偏移的预测误差值;
[0026]
基于拓展和偏移后的预测误差值确定第一层加密图像;
[0027]
具体采用以下公式:
[0028]
其中x

i
表示第一层加密图像的像素值,表示阴影部分像素预测值,e

i表示经过拓展和偏移的预测误差。
[0029]
可选的,将所述附加信息嵌入到原始图像像素的第一行具体包括:
[0030]
调整阴影部分的边界像素值;所述边界像素值为[0,255];
[0031]
将进行修改的像素对应的位置图标记修改为1,其余未修改的像素值的位置映射图标记为0,得到由0和1组成的位置图矩阵;
[0032]
将所述位置图矩阵进行压缩得到压缩的位置图;
[0033]
将所述压缩的位置图嵌入到原始图像像素的第一行。
[0034]
可选的,所述将秘密信息b∈{0,1}嵌入到预先设定的预测误差值范围内,得到经过拓展和偏移的预测误差值具体采用以下公式:
[0035][0036]
其中,b表示秘密信息,ei表示预测误差,t表示被嵌入的预测误差的范围,e

i表示
经过拓展和偏移的预测误差。
[0037]
可选的,对所述空白部分进行多层嵌入处理具体包括:
[0038]
通过第一层加密后的像素以邻居像素为中心对空白部分像素进行预测,得到第二层加密预测值;
[0039]
计算当前像素的原始像素值与所述第二层加密预测值的差值,得到第二预测误差值序列;
[0040]
计算所述第二层预测误差值序列中每一个值的频率,生成第二预测误差直方图;
[0041]
根据所述第二预测误差直方图进行数据的嵌入和平移,得到最终的加密图像。
[0042]
可选的,提取所述多层嵌入处理后的空白部分的最外层信息具体包括:
[0043]
提取第一行嵌入的附加信息;
[0044]
获取加密图像的像素第二层加密预测值;
[0045]
基于所述第二层加密预测值得到第二预测误差值序列,并生成第二预测误差直方图;
[0046]
根据所述第二预测误差值序列提取秘密信息;
[0047]
恢复最外层加密图像的像素值。
[0048]
可选的,提取所述第一层嵌入处理后的阴影部分的信息具体包括:
[0049]
获取第一层加密时的加密图像;
[0050]
获取第一层加密时的加密图像的第一层加密预测值;
[0051]
基于所述第一层加密预测值得到第一预测误差值序列,并生成第一预测误差直方图;
[0052]
基于所述第一预测误差值序列提取秘密信息;
[0053]
将无损压缩的位置图进行解压,获得解压的位置图;
[0054]
根据解压的位置图得到相应位置标记为1的像素,并修改还原,恢复原始像素值,并得到无损恢复的原始图像。
[0055]
可选的,根据所述第二预测误差值序列提取秘密信息具体包括:
[0056]
根据t=1,dw(i,j)在[-2,1)进行提取秘密信息;
[0057]
根据公式:s=mod(dw(i,j)+1,2)
ꢀꢀ
(5)
[0058]
pr(i,j)=(p

s(i,j))+(dw(i,j)-s)/2
ꢀꢀ
(6);
[0059]
其中,s是提取的秘密信息位,pr是恢复的像素值,p

s是加密图像预测值,dw是加密图像的预测误差值;
[0060]
剩余像素在[1,+∞)和(-∞,-2)的范围内是经过扩展平移的像素,并没有进行嵌入信息,提取方法根据以下公式:
[0061][0062]
直至空白部分所有的秘密信息提取完成结束。
[0063]
本发明另外提供一种基于预测误差的可逆数据隐藏系统,所述系统包括:
[0064]
图像分区模块,用于对图像进行分区,得到阴影部分和空白部分;
[0065]
第一层嵌入处理模块,用于对所述阴影部分进行第一层嵌入处理;
[0066]
多层嵌入处理模块,用于对所述空白部分进行多层嵌入处理;
[0067]
第一提取模块,用于提取所述多层嵌入处理后的空白部分的最外层信息;
[0068]
第二提取模块,用于提取所述第一层嵌入处理后的阴影部分的信息。
[0069]
根据本发明提供的具体实施例,本发明公开了以下技术效果:
[0070]
(1)本发明方法能够满足在大量数据嵌入的同时,降低图像的失真度,很好的解决了嵌入容量与图像失真的冲突关系。
[0071]
(2)本发明算法时间复杂度低。
[0072]
(3)本发明算法安全性高。
附图说明
[0073]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0074]
图1为本发明实施例一种基于预测误差的可逆数据隐藏方法流程图;
[0075]
图2(a)为本发明实施例原始像素值;
[0076]
图2(b)为本发明实施例经过预测的像素值;
[0077]
图3为本发明实施例预测误差直方图移动过程示意图;
[0078]
图4为本发明实施例嵌入过程示意图;
[0079]
图5为本发明实施例一种基于预测误差的可逆数据隐藏系统结构示意图。
具体实施方式
[0080]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0081]
本发明的目的是提供一种基于预测误差的可逆数据隐藏方法及系统,有效解决大容量数据嵌入的时候图像失真的问题。
[0082]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0083]
图1为本发明实施例一种基于预测误差的可逆数据隐藏方法流程图,如图 1所示,所述方法包括:
[0084]
步骤101:对图像进行分区,得到阴影部分和空白部分。
[0085]
对当前图像进行分区,分为阴影部分和空白部分两区域,首先对阴影部分像素进行第一层嵌入处理。随后可对空白部分像素进行多层嵌入处理。
[0086]
对图像进行分区具体包括:
[0087]
对所述图像由左至右由上至下进行扫描,得到图像的原始像素序列 {c1,c2,

,c
n
};
[0088]
将所述原始像素序列进行分区,得到空白部分{a1,a2,

,a
n
}和阴影部分 {x1,
x2,

,x
n
}。
[0089]
步骤102:对所述阴影部分进行第一层嵌入处理。
[0090]
具体包括:
[0091]
s1:以所述阴影部分的周边像素对中心像素进行预测,得到第一层加密预测值;如图2(a)和图2(b)所示,所述阴影部分像素的第一行、第一列、最后一行以及最后一列都不进行预测,因此,第一行、第一列、最后一行以及最后一列的预测误差值均为0;
[0092]
具体采用以下公式:
[0093][0094]
其中,公式(1)表示通过周边像素对中心像素进行预测,其中,i,j分别表示当前像素所在位置的行和列,{a1,a2,

,an}在第一层嵌入中均为原始像素值,为一维的预测值序列,预测值为整数。
[0095]
s2:计算当前像素的原始像素值与所述第一层加密预测值的差值,得到第一预测误差值序列(e1,

,en),具体采用以下公式:
[0096]
其中,xi表示当前像素的原始像素值,表示第一层加密预测值;
[0097]
s3:计算所述第一预测误差值序列中每一个值的频率,生成第一预测误差直方图,嵌入数据通过修改预测误差直方图进行拓展和平移,如图3所示。
[0098]
s4:获取附加信息;所述附加信息包括:秘密信息长度和压缩的位置图大小。
[0099]
s5:将所述附加信息嵌入到原始图像像素的第一行,如图4所示。
[0100]
在我们的方法中将附加信息通过最低有效位替换技术最后嵌入到第一行,并且在提取中首先提取第一行的信息。因此,压缩的位置图信息,以及秘密信息长度作为有效载容的部分嵌入到原始图像像素的第一行中去。
[0101]
具体包括:
[0102]
s51:调整阴影部分的边界像素值;所述边界像素值为[0,255]。
[0103]
s52:将进行修改的像素对应的位置图标记修改为1,其余未修改的像素值的位置映射图标记为0,得到由0和1组成的位置图矩阵;
[0104]
location map(位置映射图):用来标记在嵌入过程中会引起溢出问题的像素。为了防止灰度图像在嵌入信息以后发生上溢和下溢的问题,也就是说超过 [0,255]范围,我们会在一个可靠的范围内调节像素值,因此在我们的方法中,每个像素值的修改最多为1,因此只需要调整边界值像素,例如,将值为255 得xi(原始像素)修改为254,将值为0的xi(原始像素)改为1,同时将进行修改的像素对应的位置图标记修改为1,其余未进行修改的像素值的位置映射图标记为0。这里我们得到是一个与给定图像大小相同的一个由0和1组成的矩阵(即位置图矩阵),然后将得到的矩阵通过无损压缩技术,进行压缩,这里的无损压
缩采用数字编码的方式,即步骤s53。
[0105]
s53:将所述位置图矩阵进行压缩得到压缩的位置图。
[0106]
s54:将所述压缩的位置图嵌入到原始图像像素的第一行。
[0107]
s6:将秘密信息b∈{0,1}嵌入到预测误差为[0,-1]内,得到经过拓展和偏移的预测误差值e

i。
[0108]
具体采用以下公式:
[0109][0110]
其中,b表示秘密信息,ei表示预测误差,t表示被嵌入的预测误差的范围,e

i表示经过拓展和偏移的预测误差。
[0111]
s7:基于拓展和偏移后的预测误差值确定第一层加密图像;
[0112]
具体采用以下公式:
[0113]
其中x

i
表示第一层加密图像的像素值,也就是第一层加密图像的像素值,表示阴影部分像素预测值,e

i表示经过拓展和偏移的预测误差。
[0114]
同样地,我们的方案可以进行多层嵌入,也就是说如图2(a),除原始图像四周,将剩余图像分为阴影部分和空白部分,第一层嵌入在阴影部分,剩余空白部分可以进行多层嵌入,比如在第二层嵌入我们选择阴影像素同一行的右侧相邻像素进行嵌入,嵌入时用来参与预测第二层的值是第一层嵌入时修改的值,其余相同,注意最好将秘密信息分成大小接近的两部分,第一层嵌入结束以后,通过第一层加密后的像素以邻居像素为中心使用相同的预测器进行预测,随后进行相应的数据嵌入和偏移,直至嵌入信息结束。
[0115]
步骤103:对所述空白部分进行多层嵌入处理。
[0116]
与阴影部分不同的是空白部分的像素值预测是根据前一层加密图像的像素值进行。第一层嵌入结束以后,通过第一层加密后的像素以邻居像素为中心使用相同的预测方法公式(1)进行预测。
[0117]
在第二层嵌入时选择阴影像素同一行的右侧相邻的空白像素进行嵌入,嵌入时用来参与预测第二层的值是第一层嵌入时修改过的值。
[0118]
若采用两层嵌入,最好将秘密信息分成大小接近的两部分,随后进行相应的数据嵌入和偏移,直至所有信息嵌入结束。
[0119]
具体包括如下步骤:
[0120]
a1:通过第一层加密后的像素以邻居像素为中心对空白部分像素进行预测,得到第二层加密预测值。
[0121]
a2:计算当前像素的原始像素值与所述第二层加密预测值的差值,得到第二预测误差值序列。
[0122]
a3:计算所述第二层预测误差值序列中每一个值的频率,生成第二预测误差直方图,如图3所示。
[0123]
a4:根据所述第二预测误差直方图进行数据的嵌入和平移,得到最终的加密图像。
[0124]
步骤104:提取所述多层嵌入处理后的空白部分的最外层信息。
[0125]
在提取秘密信息和恢复原始图像的过程中,首先提取嵌入在最外层的秘密信息,然后在依次向内层提取,最终无损恢复原始图像,并得到嵌入的秘密信息。
[0126]
具体包括:
[0127]
b1:提取第一行嵌入的附加信息。
[0128]
恢复第一行的原始像素值。通过读取加密图像第一行的最低有效位得到图像中实际的有效载容。将第一行被替换的最低有效位还原回去从而恢复第一行像素的原始值。
[0129]
b2:获取加密图像的像素第二层加密预测值。
[0130]
b3:基于所述第二层加密预测值得到第二预测误差值序列,并生成第二预测误差直方图。
[0131]
具体的,使用相同的扫描和预测命令去得到加密图像的像素预测值,随后获取加密图像的标记预测误差序列,生成加密图像的预测误差直方图,过程与嵌入阶段相同。
[0132]
b4:根据所述第二预测误差值序列提取秘密信息。
[0133]
根据t=1,dw(i,j)在[-2,1)进行提取秘密信息;
[0134]
根据公式:s=mod(dw(i,j)+1,2)
ꢀꢀ
(5)
[0135]
pr(i,j)=(p

s(i,j))+(dw(i,j)-s)/2
ꢀꢀ
(6);
[0136]
其中,s是提取的秘密信息位,pr是恢复的像素值,p

s是加密图像预测值,dw是加密图像的预测误差值;
[0137]
剩余像素在[1,+∞)和(-∞,-2)的范围内是经过扩展平移的像素,并没有进行嵌入信息,提取方法根据以下公式:
[0138][0139]
直至空白部分所有的秘密信息提取完成结束。
[0140]
b5:恢复最外层加密图像的像素值。
[0141]
根据上述过程最外层的图像以及加密信息能够被无损的恢复,这里原始图像的第一行像素,第一列像素,最后一行像素以及最后一列像素和加密图像的第一行像素,第一列像素,最后一行像素以及最后一列像素在嵌入和提取过程中并未改变,加密图像的预测值与嵌入时是相同的。
[0142]
步骤105:提取所述第一层嵌入处理后的阴影部分的信息。
[0143]
c1:获取第一层加密时的加密图像。
[0144]
c2:获取第一层加密时的加密图像的第一层加密预测值。
[0145]
c3:基于所述第一层加密预测值得到第一预测误差值序列,并生成第一预测误差直方图。
[0146]
c4:基于所述第一预测误差值序列提取秘密信息。
[0147]
提取过程与步骤104中的提取过程一致:
[0148]
根据t=1,dw(i,j)在[-2,1)进行提取秘密信息;
[0149]
根据公式:s=mod(dw(i,j)+1,2)
ꢀꢀ
(8)
[0150]
pr(i,j)=(p

s(i,j))+(dw(i,j)-s)/2
ꢀꢀ
(9);
[0151]
其中,s是提取的秘密信息位,pr是恢复的像素值,p

s是加密图像预测值,dw是加密图像的预测误差值;
[0152]
剩余像素在[1,+∞)和(-∞,-2)的范围内是经过扩展平移的像素,并没有进行嵌入信息,提取方法根据以下公式:
[0153][0154]
直至所有的秘密信息提取完成结束。
[0155]
c5:将无损压缩的位置图进行解压,获得解压的位置图。
[0156]
c6:根据解压的位置图得到相应位置标记为1的像素,并修改还原,恢复原始像素值,并得到无损恢复的原始图像。
[0157]
图5为本发明实施例一种基于预测误差的可逆数据隐藏系统结构示意图,如图5所示,所述系统包括:
[0158]
图像分区模块201,用于对图像进行分区,得到阴影部分和空白部分;
[0159]
第一层嵌入处理模块202,用于对所述阴影部分进行第一层嵌入处理;
[0160]
多层嵌入处理模块203,用于对所述空白部分进行多层嵌入处理;
[0161]
第一提取模块204,用于提取所述多层嵌入处理后的空白部分的最外层信息;
[0162]
第二提取模块205,用于提取所述第一层嵌入处理后的阴影部分的信息。
[0163]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0164]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1