1.一种基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,包括:
步骤1:对原始图像I进行上溢/下溢预处理;
步骤2:采用传统的棋盘法对上溢/下溢预处理后的图像I进行处理,图像被分为Blue和Blank两个子图像,每个子图像与原始图像大小相等;对Blue/Blank子图像的像素位置进行划分,然后使用菱形预测器计算目标像素的预测误差,得到预测误差矩阵,然后根据目标像素的预测误差矩阵生成预测误差直方图;
步骤3:计算Blue/Blank子图像的像素纹理度,得到目标像素的邻接像素的像素纹理度,然后利用邻接像素的像素纹理度计算目标像素的局部复杂度;
步骤4:根据每个子图像中的目标像素的预测误差直方图,分别选择三个峰值点,和两个分别距离最大峰值点和最小峰值点最近的零点,然后,根据秘密信息长度自适应选择峰值点,优先对每个子图像中局部复杂度低的像素进行信息嵌入;
步骤5:进行秘密信息提取和图像恢复。
2.根据权利要求1所述的基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,所述步骤1包括:
按顺序遍历大小为m×n的原始图像I中的像素,将原始图像I中像素值为“0”和“255”的像素分别修改为“1”和“254”,并在位图中标记“1”;将由于嵌入或者平移操作而被修改为“0”和“255”的像素,在相同的位图上标记“0”,得到图像J,将图像J赋值给I;然后采用无损压缩的方法将位图进行压缩,并作为有效载荷的一部分嵌入图像中。
3.根据权利要求1所述的基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,所述步骤2包括:
将Blue子图像的像素位置划分为七类:P1位置、P2位置、Q类位置、M类位置、R类位置、N类位置、A类位置,其中,P1位置为Blue子图像的左上角,P2位置为Blue子图像的右下角,Q类位置为除P1位置外、Blue子图像的上边界,M类位置为除P1位置外、Blue子图像的左边界,R类位置为除P1位置外、Blue子图像的下边界,N类位置为除P1位置外、Blue子图像的右边界,A类位置为除P1位置外、P2位置、Q类位置、M类位置、R类位置、N类位置外、Blue子图像的像素位置;
Case1:计算目标像素在P1位置上的预测像素值:Case2:计算目标像素在P2位置上的预测像素值:Case3:计算目标像素在Q类的位置上的预测像素值:Case4:计算目标像素在M类的位置上的预测像素值:Case5:计算目标像素在R类的位置上的预测像素值:Case6:计算目标像素在N类的位置上的预测像素值:Case7:计算目标像素在A类的位置上的预测像素值:根据上述七种像素位置,可计算预测误差e,如下式所示:其中公式(1)~(8)中,P表示原始像素值,表示预测像素值, 表示向下取整函数,a1为目标像素的右相邻像素,a3为目标像素的下相邻像素,a5为目标像素的左相邻像素,a7为目标像素的上相邻像素。
4.根据权利要求3所述的基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,所述步骤3包括:
Case1:计算目标像素在P1位置上的像素局部复杂度,公式如下:Case2:计算目标像素在P2位置上的像素局部复杂度,公式如下:Case3:计算目标像素在Q类的位置上的像素局部复杂度,公式如下:Case4:计算目标像素在M类的位置上的像素局部复杂度,公式如下:Case5:计算目标像素在R类的位置上的像素局部复杂度,公式如下:Case6:计算目标像素在N类的位置上的像素局部复杂度,公式如下:Case7:计算目标像素在A类的位置上的像素局部复杂度,公式如下:公式(9)~(15)中,ver表示垂直方向上两两相邻的像素差的绝对值之和的平均值,hor表示水平方向上两两相邻像素差的绝对值之和的平均值,fP表示目标像素纹理度,ΩP表示像素局部复杂度, 表示向下取整函数;a2为目标像素的右下角相邻像素,a4为目标像素的左下角相邻像素,a6为目标像素的左上角相邻像素,a8为目标像素的右上角相邻像素;
分别为a1,a2,a3,a4,a5,a6,a7,a8对应的像素纹理度。
5.根据权利要求1所述的基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,所述步骤4还包括:低嵌入需求时,优先选择距离零点最近的两个峰值点进行信息嵌入,建立位置索引序列L,大小为 用于记录未嵌入秘密信息的中间峰值点的位置索引;高嵌入需求时,距离零点最近的两个峰值点用完后,调用位置索引序列L继续选择中间峰值点进行信息嵌入。
6.根据权利要求5所述的基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,所述信息嵌入具体包括:步骤4.1:根据局部复杂度和预测误差的计算方法,将计算得到的Blue子图像的所有像素的预测误差值和局部复杂度分别存储在两个m×n的矩阵中,然后以光栅扫描法扫描局部复杂度矩阵和预测误差值矩阵,生成局部复杂度序列F和预测误差序列E,大小均为再用两个大小为 的序列E_x和E_y来存储预测误差的横、纵坐标;
步骤4.2:将局部复杂度序列F按照升序排列得到F',然后按照F'的顺序对三个序列E,E_x和E_y进行排序,得到序列E',E_xx和E_yy,从而使得预测误差与其位置坐标一一对应;
步骤4.3:将一半的秘密信息分配给Blue子图像,按照预测误差序列E'的顺序依次扫描并修改预测误差值,进行信息嵌入操作,具体嵌入过程如下:Case1:q≤(numA1+numA11)Case2:q>(numA1+numA11)相应的原始像素的值被修改为:
P′i=Pi+e′i (18)公式(16)~(18)中,q是阈值,ω是秘密信息,ω∈{0,1},PK1A,PK2A,PK3A分别为Blue子图像的三个峰值点,MD表示三个峰值点的中间峰值点;Z1,Z2是Blue子图像中距离峰值点最近的两个零点;ei是原始预测误差值,Pi是原始像素值,e′i是被标记的预测误差值,P′i表示被标记的像素值;numA1和numA11分别是Blue子图像中距离零点最近的两个峰值点的个数;
步骤4.4:通过步骤4.1至4.3完成对原始图像中Blue子图像秘密信息的嵌入,得到中间载密图像Stego_I1;Blank子图像进行信息嵌入时,在Stego_I1的基础上,对Blank子图像执行步骤4.1至4.3,完成另一半秘密信息的嵌入,最终完成对整个图像的嵌入,得到最终的载密图像Stego_I2。
7.根据权利要求6所述的基于改进的像素局部复杂度计算和多峰嵌入的可逆信息隐藏方法,其特征在于,所述步骤5包括:
步骤5.1:首先提取载密图像Stego_I2中Blank子图像的秘密信息,调用信息嵌入过程中建立的位置索引序列E_xx和E_yy,按顺序扫描位置索引序列E_xx和E_yy,在Stego_I2中找到与索引对
步骤5.2:按照如下公式恢复原始像素,得到原始图像:Pi=P′i+ei (23)其中,P′i表示被标记的像素值,Pi表示被恢复的像素值;
步骤5.3:载密图像Stego_I2中Blank子图像的秘密信息提取后,得到中间恢复图像Re_I1,用同样的方法在Re_I1基础上对Blue子图像进行信息提取和图像恢复,然后利用解压缩的位图,恢复被修改的像素,最终得到被恢复的原始图像Re_I2。