一种基于凸壳和分组插补的隐藏图像修复方法与流程

文档序号:17070035发布日期:2019-03-08 23:14阅读:148来源:国知局
一种基于凸壳和分组插补的隐藏图像修复方法与流程

本发明涉及图像处理领域和信息安全领域,具体是一种基于凸壳和分组插补的隐藏图像修复方法。



背景技术:

随着网络技术的发展,信息安全备受人们的关注。信息隐藏作为信息安全的重要研究领域,得到了广泛应用。信息隐藏目的是将秘密信息嵌入到载体中,让截获者察觉不到隐秘通信的存在,从而实现安全通信。

已有的空域图像恢复方法包括:开关中值和形态学滤波去除脉冲噪声的算法、自适应双阈值去除随机脉冲噪声的算法、基于迭代方法去除随机脉冲噪声的算法。开关中值和形态学滤波去除脉冲噪声的算法首先通过基于侵蚀和膨胀算子的形态学梯度对噪声进行监测,然后通过混合滤波器去除监测到的脉冲噪声;自适应双阈值去除随机脉冲噪声的算法,通过引入双阈值的概念来改进噪声监测的技术,应用窗口平均像素值计算阈值,准确的噪声监测更加有利于图像去噪;基于迭代方法去除随机脉冲噪声的算法通过检查噪声点分布,针对检测出的噪声点应用基于迭代的中值滤波进行修复。已有的频域图像恢复方法包括:基于小波和多重分形的奇异检测图像去噪方法、应用维纳滤波的双层混合小波变换来实现图像恢复、应用对偶树复小波变换来实现图像恢复。基于小波和多重分形的奇异检测图像去噪方法利用小波变换的多分辨率分析,利用不同尺度的局部统计自相似性,计算出各尺度局部奇异性的逐点奇异强度值,通过对奇异强度的阈值划分,将每个尺度的小波系数分为两类:边缘相关正则小波系数和不规则系数。不规则系数类,用一种近似的最小均方误差估计方法进行降噪处理,而边缘关联规则的小波系数类,利用模糊加权均值滤波器进行平滑处理,旨在保护边缘和细节时降噪。应用维纳滤波的双层混合小波变换来实现图像恢复根据混合小波并结合软阈值函数和硬阈值函数对图像进行初步处理,并使用维纳滤波处理得到恢复图像;应用对偶树复小波变换来实现图像恢复用对偶树复小波变换来分解图像并且用压缩操作去除图像的噪声。



技术实现要素:

本发明的目的是针对现有技术的不足,而提供一种基于凸壳和分组插补的隐藏图像修复方法。这种方法修复边界标记像素并清除孤立点能提高修复的准确率,提升恢复隐藏图像的峰值信噪比。

实现本发明目的的技术方案是:

一种基于凸壳和分组插补的隐藏图像修复方法,与现有技术不同的是,所述信息载体和隐藏信息均为图像,所述方法包括如下步骤:

1)确定需要修复像素:若载密图像被椒盐噪声干扰,检测载密图像,值为0或255的像素点为被破坏像素,对从被破坏像素中提取的隐藏信息进行标记,在隐藏图像中,若像素高5位未被破坏,该像素不需进行修复,若像素高5位存在被破坏的比特位,对该像素进行标记,按行遍历隐藏图像像素,若标记像素为非边界像素,则采用步骤2)或步骤3)进行修复,若标记像素为边界像素,则采用步骤4)进行修复,最后采用步骤5)修复孤立点;

2)应用凸壳修复像素:设像素p0为标记像素,依次在p0的3×3、5×5和7×7邻域中确定未标记像素,若在某个邻域中未标记像素个数大于等于4且p0位于这些未标记像素所构成的凸壳内部,则应用这些像素对其进行修复,否则采用步骤3)对p0进行修复:即设像素p的像素值为f(p),p0的估计值为a,p0的3×3邻域中未标记像素为5×5邻域中未标记像素为7×7邻域中未标记像素为权重为w1,权重为w2,权重为w3,在3×3、5×5或7×7这三个邻域中,求出大于或等于4个未标记像素的最小邻域,计算这些未标记像素的凸壳,若p0不在凸壳的内部,则扩大邻域范围,直到有新的未标记像素,再计算这些未标记像素的凸壳,若在7×7邻域中未标记像素个数小于4或p0不在凸壳的内部,则采用步骤3)对p0进行修复;若存在凸壳,且p0在凸壳的内部,则对p0进行修复,设这些未标记像素为p1,p2,…,pm,f(px)为p1,p2,…,pm中的最大像素值,f(py)为这些像素中的最小像素值,由于p0中不可信位只能为0或1,对所有的不可信位分别取0或1,则必有一个值是p0的像素值,设对p0中不可信位分别取0或1所有的值为q1,q2,…,qn,根据未标记像素的最大与最小像素值的差分别进行修复:

i)f(px)-f(py)<t1,其中t1为阈值,

估计值a计算如公式(1)所示:

计算q1,q2,…,qn中每元素与a的差值的绝对值,差值绝对值最小的值作为p0修复值,实现对p0的恢复;

ii)f(px)-f(py)≥t1,

设su为qu与p1,p2,…,pm像素值的加权差值和,其中u为1到n之间的整数,则有:

设s1,s2,…,sn的最小值为smin,f(pm+1)=qmin,r为变异系数,则:

r越小说明该组数据变化程度越小,若r<t2,t2为阈值,令:

f(p0)=qmin(4)

通过公式(4)修复p0。若r≥t2,则采用步骤3)对p0进行修复;

3)应用分组插补法修复像素:对于步骤2)中未修复的非边界标记像素,应用分组插补方法进行修复:

在p0的(2d+1)×(2d+1)邻域中,d为整数,从d=1开始,找出3×3邻域可信点,若未标记像素的个数不足4,则令d=d+1直到未标记像素的个数大于等于4,计算这些未标记像素的凸壳,若p0未在凸壳内部,则d=d+1扩大该邻域范围,直到p0在未标记像素所构成凸壳的内部或到图像的边缘,将这些未标记像素的所有不可信位置1,计算这些像素的值,设其中的最大值为maxs;将这些未标记像素的所有不可信位置0,计算这些像素值,设其中最小值为mins,则有mins≤f(p0)≤maxs,设q1,q2,…,qn在maxs与mins之间的值为t1,t2,…,tz,应用邻域未标记像素缩小修复值的取值范围,在t1,t2,…,tz中确定p0的恢复值;

设像素点p的高5位失真值为b(p),c(p,k)为像素p的第k位失真标记,其中k=4,5,6,7,8,若p的第k位从载密图像被噪声等破坏的像素点提取,则c(p,k)=1,若p的第k位未被破坏,则c(p,k)=0,因此像素点p的高5位失真值

将待修复点p0的3×3邻域8个像素按照高5位失真值的大小进行排序,设以从小到大顺序排列的像素为将这8个像素分为两组,即

将像素低3位保持不变,对高5位中的不可信位分别置0或1得到一组数,设这组数在mins与maxs之间的值其中i=1,2,3,4,可得到共4组数据,构建新的数据集{x1,x2,x3,x4},其中i=1,2,3,4,设数据集合共有l组,第j组的中值为mj,j为1到l间的整数,yk为tk与mj差的平方和,k为1到z间的整数,则:

设y1,y2,…,yz中的最小值为yr,在t1,t2,…,tz中处取得最小值yr,若e=1,令:

value1=tr(6)

若e>1,则计算均值之差的平方,v为1到e之间整数,令:

设g1,g2,…,ge中最小值为gw,则:

应用确定value1的方法,在确定value2,则p0的估计值a为:

a=w4×value1+(1-w4)value2(9)

其中w4为权重,根据估计值a计算出p0的恢复值,实现对p0的恢复;

4)修复边界标记像素:对于在步骤1)中确定、在步骤2)和步骤3)中未得到修复的标记像素,以4邻域相邻的非边界像素的像素值为估计值计算修复值,若4邻域不存在非边界点,则以8邻域非边界像素的像素值为估计值计算修复值;

5)去除孤立点:若修复后的标记像素与其3×3邻域像素均值的差值绝对值大于t3,t3为阈值,则该像素为孤立点,需要对其进行处理:将孤立点3×3邻域像素均值作为估计值,孤立点不可信像素位可能为0或1,计算每个可能值与估计值的差值绝对值,差值绝对值最小的可能值作为孤立点修复值。

这种方法应用凸壳修复非边界标记像素,当非边界标记像素在其某邻域构成的凸壳内部,能够使待修复像素的修复值不会偏向某一个方向,接下来,应用分组插补的方法修复非边界标记像素。

这种方法修复边界标记像素并清除孤立点能提高修复的准确率,提升恢复隐藏图像的峰值信噪比。

附图说明

图1为实施例方法流程示意图;

图2为实施例中被隐藏图像矩阵示意图;

图3为实施例中载体图像矩阵示意图;

图4为实施例中载密图像矩阵示意图;

图5为实施例中被强度0.3椒盐噪声污染的载密图像矩阵示意图;

图6为实施例中从图4中恢复的隐藏图像矩阵示意图;

图7为实施例中图4中像素是否可信标记矩阵示意图;

图8为实施例中修复后的隐藏图像矩阵示意图。

具体实施方式

下面结合附图和实施例对本发明内容作进一步的详细说明,但不是对本发明的限定。

实施例:

参照图1,一种基于凸壳和分组插补的隐藏图像修复方法,所述信息载体和隐藏信息均为图像,本例选择大小为5×5隐藏图像,如图2所示,按列遍历隐藏图像中的像素,每个像素按照由高位到低位的顺序排列,得到5×5×8位秘密信息,为{01101001、01101110、01101011、01101110、01101010、01100111、01101101、01101001、01101011、01101011、01100111、01101110、01101001、01111110、01101100、01101000、01101110、01101010、01101001、01111110、01100110、01101101、01101000、01100111、01100111},如图3所示为10×10大小的载体图像矩阵示意图,隐藏位数为2,将前100位秘密信息按列遍历的顺序隐藏到载密像素的最低位,之后将余下100位秘密信息按列遍历的顺序隐藏到载密像素的第2位,得到载密图像如图4所示,载密图像添加强度为0.3的椒盐噪声后所得到的载密图像如图5所示,

所述方法包括如下步骤:

1)确定需要修复像素:若载密图像被椒盐噪声干扰,检测载密图像,值为0或255的像素点为被破坏像素,对从被破坏像素中提取的隐藏信息进行标记,在隐藏图像中,若像素高5位未被破坏,该像素不需进行修复,若像素高5位存在被破坏的比特位,对其进行标记,根据隐藏时的顺序提取秘密信息,并对从破坏像素中提取的隐藏信息进行标记,提取的秘密信息为{01101001、01101101、00111110、11101110、01001010、01100111、01111101、01101101、01101011、01101011、01100101、11001110、01101011、11111110、01010001、01101000、01101100、00101010、01111001、01111110、01110110、00101101、00101100、01001101、11100111},计算得到恢复隐藏图像像素值,如图6所示,秘密信息的标记为{00101000、00000011、11010101、10000100、00100101、00000001、0001000、00000101、00000100、00000100、01000010、11101000、00000010、10000000、00111101、01011000、01000010、0101000、00010001、00000000、01010000、01000000、01000100、00101110、10000000}其中1表示对应的秘密信息不可信,0表示对应的秘密信息可信,在隐藏图像中,若像素高5位未被破坏,该像素不需进行修复,若像素高5位存在被破坏的比特位,对其进行标记,应用凸壳或分组插补方法进行修复,图7为隐藏图像中各像素是否可信标记矩阵示意图,若对应的像素需要修复用1来表示,若对应的不需要修复用0来表示,按行遍历隐藏图像像素,若标记像素为非边界像素,则采用步骤2)或步骤3)进行修复,若标记像素为边界像素,则采用步骤4)进行修复,最后采用步骤5)修复孤立点;

2)应用凸壳修复像素:设像素p0为待修复像素,依次在p0的3×3、5×5和7×7邻域中确定未标记像素,若在某个邻域中未标记像素个数大于等于4且p0位于这些未标记像素所构成的凸壳内部,则应用这些像素对其进行修复,否则采用步骤3)对p0进行修复:即设像素p的像素值为f(p),p0的估计值为a,p0的3×3邻域中未标记像素为5×5邻域中未标记像素为7×7邻域中未标记像素为权重为w1,权重为w2,权重为w3,在3×3、5×5或7×7这三个邻域中,求出大于或等于4个未标记像素的最小邻域,计算这些未标记像素的凸壳,若p0不在凸壳的内部,则扩大邻域范围,直到有新的未标记像素,再计算这些未标记像素的凸壳,若在7×7邻域中未标记像素个数小于4或p0不在凸壳的内部,则采用步骤3)对p0进行修复,若存在凸壳,且p0在凸壳的内部,则对p0进行修复,设这些未标记像素为p1,p2,…,pm,f(px)为p1,p2,…,pm中的最大像素值,f(py)为这些像素中的最小像素值,由于p0中不可信位只能为0或1,对所有的不可信位分别取0或1,则必有一个值是p0的像素值,设对p0中不可信位分别取0或1所有的值为q1,q2,…,qn,根据未标记像素的最大与最小像素值的差分别进行修复;

设pi,j为第i行第j列像素,由于隐藏图像大小为5×5,因此寻找待修复像素的3×3和5×5邻域中的未标记像素,由图7中的隐藏像素的标记可以得出,待修复像素中只有p2,2和p4,3的3×3邻域中的未标记像素个数不少于4,并且p2,2和p4,3分别在各自3×3邻域中的未标记像素所构成的凸壳内部,因此可以应用凸壳来修复p2,2和p4,3,

i)f(px)-f(py)<t1,其中t1为阈值,

估计值a计算如公式(1)所示:

计算q1,q2,…,qn中每元素与a的差值的绝对值,差值绝对值最小的值作为p0修复值,实现对p0的恢复;

p2,2的3×3邻域未标记像素为p1,2,p2,1,p3,2,p3,3,其中像素值最大的像素为p3,2,f(p2,1)=f(p3,2)=109,像素值最小的像素为p2,1,f(p1,2)=103,f(p3,2)-f(p2,1)<t1,本例中t1=16,根据公式(1)计算估计值a,p1,2,p2,1,p3,2,p3,3分别设为p2,2的恢复信息为{01101101},恢复信息标记为{00010000},由此可以得出p2,2的第5位不可信,第5位只能为0或1,因此p2,2的可能值为{125、109},|125-107|>|109-107|,所以p2,2的恢复值为109,即f(p2,2)=109;

ii)f(px)-f(py)≥t1,

设su为qu与p1,p2,…,pm像素值的加权差值和,其中u为1到n之间的整数,则有:

设s1,s2,…,sn的最小值为smin,f(pm+1)=qmin,r为变异系数,则:

r越小说明该组数据变化程度越小,若r<t2,t2为阈值,令:

f(p0)=qmin(4)

通过公式(4)修复p0。若r≥t2,则采用步骤3)对p0进行修复;

p4,3的3×3邻域未标记像素为p3,2,p3,3,p4,2,p5,2,p5,4,其中像素值最大的像素为p5,4,f(p5,4)=126,像素值最小的像素为p3,3,p4,2,p5,2,f(p3,3)=f(p4,2)=f(p5,2)=107,f(p5,4)-f(p3,3)>t1,因此根据差异系数法确定恢复值,p4,3的恢复信息为{11111110},恢复信息标记为{10000000},由此可以得出p4,3的第8位不可信,第8位只能为0或1,因此p4,3的可能值q1,q2分别为254和126,依据公式(2),p3,2,p3,3,p4,2,p5,2,p5,4分别设为计算su,其中u为1或2,w1、w2、w3分别为0.5、0.3、0.2,计算得到s1、s2分别为357、37,根据公式(3)计算f(p3,2),f(p3,3),f(p4,2),f(p5,2),f(p5,4),q2的差异系数r=0.8,满足r<t2,t2为0.85,则f(p4,3)=126;

3)应用分组插补法修复像素:对于步骤2)中未修复的非边界标记像素,应用分组插补方法进行修复:

在p0的(2d+1)×(2d+1)邻域中,d为整数,从d=1开始,找出3×3邻域可信点,若未标记像素的个数不足4,则令d=d+1直到未标记像素的个数大于等于4,计算这些未标记像素的凸壳,若p0未在凸壳内部,则d=d+1扩大该邻域范围,直到p0在未标记像素所构成凸壳的内部或到图像的边缘,将这些未标记像素的所有不可信位置1,计算这些像素的值,设其中的最大值为maxs;将这些未标记像素的所有不可信位置0,计算这些像素值,设其中最小值为mins,则有mins≤f(p0)≤maxs,设q1,q2,…,qn在maxs与mins之间的值为t1,t2,…,tz,应用邻域未标记像素缩小修复值的取值范围,在t1,t2,…,tz中确定p0的恢复值;

设像素点p的高5位失真值为b(p),c(p,k)为像素p的第k位失真标记,其中k=4,5,6,7,8,若p的第k位从载密图像被噪声等破坏的像素点提取,则c(p,k)=1,若p的第k位未被破坏,则c(p,k)=0,因此像素点p的高5位失真值

将待修复点p0的3×3邻域8个像素按照高5位失真值的大小进行排序,设以从小到大顺序排列的像素为将这8个像素分为两组,即

将像素低3位保持不变,对高5位中的不可信位分别置0或1得到一组数,设这组数在mins与maxs之间的值其中i=1,2,3,4,可得到共4组数据,构建新的数据集{x1,x2,x3,x4},其中i=1,2,3,4,设数据集合共有l组,第j组的中值为mj,j为1到l间的整数,yk为tk与mj差的平方和,k为1到z间的整数,则:

设y1,y2,…,yz中的最小值为yr,在t1,t2,…,tz中处取得最小值yr,若e=1,令:

value1=tr(6)

若e>1,则计算均值之差的平方,v为1到e之间整数,令:

设g1,g2,…,ge中最小值为gw,则:

应用确定value1的方法,在确定value2,则p0的估计值a为:

a=w4×value1+(1-w4)value2(9)

其中w4为权重,根据估计值a计算出p0的恢复值,实现对p0的恢复;确定步骤2)中未修复的非边界标记像素,即p2,3,p2,4,p3,4,p4,4,应用分组插补方法进行修复:

首先在p2,3的(2d+1)×(2d+1)邻域中,d为整数,从d=1开始,找出3×3邻域可信点,若未标记像素的个数不足4个,则令d=d+1直到未标记像素的个数大于等于4,计算这些未标记像素的凸壳,若p0未在凸壳内部,则d=d+1扩大该邻域范围,直到p0在未标记像素所构成凸壳的内部或到图像的边缘,这些未标记像素为p1,2,p2,1,p3,2,p3,3,p4,2,p5,2,p5,4,将这些未标记像素的所有不可信位置1,得到最大值maxs=126,将这些未标记像素的所有不可信位置0,得到最小值mins=102,则有mins≤f(p2,3)≤maxs,设p2,3的可能值在maxs与mins之间的值为t1,t2,t1=102、t2=110,应用邻域未标记像素缩小修复值的取值范围,

设隐藏图像的像素点p的高5位失真值为b(p),p的第k位是否从载密图像噪声点提取的标记为c(p,k),其中k=4,5,6,7,8,若p的第k位从载密图像噪声点提取,则c(p,k)=1,若p的第k位从载密图像非噪声点提取,则c(p,k)=0,求得像素点p的高5位失真值

将待修复点p2,3的3×3邻域8个像素按照高5位失真值的大小进行排序,设以从小到大顺序排列的像素为p1,2,p3,3,p3,2,p2,2,p1,3,p2,4,p3,4,p1,4,将这8个像素分为两组,即

将像素低3位保持不变,其中i=1,2,3,4,对高5位中的不可信位分别置0或1得到一组数,设这组数在mins与maxs之间的值为这样可得到{103}、{109}、{107}、{109,125}共4组数据,构建新的数据集{x1,x2,x3,x4},其中i=1,2,3,4,设共有l=1×1×1×2=2组,第j组的中值为mj,j为1到l间的整数,yi为ti与mj差的平方和,i为1到z间的整数,z=2,则:

将y1,y2中的最小值为y2,将y2对应的t1,t2,…,tz中的值设为此时只存在则令:

value1=t2(5)

应用上述相同方法,根据确定value2=t2,则p0的估计值a为:

a=w4×value1+(1-w4)value2(6)

其中w4=0.8,根据估计值a=110计算出p2,3的恢复值,计算t1,t2中每元素与110的差值的绝对值,差值绝对值最小的值作为p2,3修复值,f(p2,3)=110,实现对p2,3的修复;

应用修复p2,3的方法修复p2,4、p3,4、p4,4,得到f(p2,4)=108,f(p3,4)=106,f(p4,4)=105;

4)修复边界标记像素:对于在步骤1)中确定、在步骤2)和步骤3)中未得到修复的标记像素,以4邻域相邻的非边界像素的像素值为估计值计算修复值,若4邻域不存在非边界点,则以8邻域非边界像素的像素值为估计值计算修复值,对于边界标记像素,以4相邻的非边界像素的像素值为估计值,计算恢复值,p1,3的估计值为f(p2,3)=110,p1,3的恢复信息为{01100101},恢复信息标记为{01000010},由此可以得出p1,3的高五位中第7位不可信,第7位只能为0或1,因此可能值为37、101,|37-f(p2,3)|>|101-f(p2,3)|,因此f(p1,3)=101,以相同的方法得出f(p1,4)=104,f(p2,5)=109,f(p3,1)=110,f(p3,5)=108,f(p4,1)=110,f(p4,5)=101,f(p5,3)=121,若4邻域不存在非边界点,则以8邻域非边界像素的像素值为估计值计算修复值,f(p1,1)=105,f(p1,5)=102,f(p5,1)=106,f(p5,5)=103,修复后的隐藏图像如图8所示;

5)去除孤立点:若修复后的标记像素与其3×3邻域像素均值的差值绝对值大于t3,t3为阈值,本例中t3=8,则该像素为孤立点,需要对其进行处理:将孤立点3×3邻域像素均值作为估计值,孤立点不可信像素位可能为0或1,计算每个可能值与估计值的差值绝对值,差值绝对值最小的可能值作为孤立点修复值,遍历修复后的隐藏图像,由于选择的隐藏图像较为平滑,因此修复后未产生孤立点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1