1.一种大容量图像隐写方法,用于将秘密信息嵌入到载体图像中,其特征在于包括以下步骤:步骤一、将载体图像和秘密图像进行分组:
通过从左到右、从上到下的顺序,将载体图像的所有像素展开排列起来,获得载体灰度图像,并用符号P表示,然后将载体灰度图像P的像素按照从前到后的顺序,以(2k-1)个像素为一组进行分组,得到x个分组载体图像;
将秘密信息转换成二进制位流,将秘密信息的二进制位流按照从前到后的顺序,以k个比特位为一组进行分组,得到y个分组秘密信息,y小于等于x,k=3或4或5;
步骤二、按照先后顺序分别提取一个分组载体图像和一组秘密信息,然后按照如下步骤1和步骤2记载的方法分别将其中的一组秘密信息嵌入其中的一个分组载体图像中,直至所有分组秘密信息均嵌入完毕;嵌入了一组秘密信息的分组载体图像称为最终载秘分组图像,将所有最终载秘分组图像进行组合,得到最终的载秘图像;
设P中的某一个分组载体图像为c,c中(2k-1)个像素的灰度值分别用[c1,c2,…ci,…cL]表示,其中ci表示载体图像对应像素的灰度值,0<<ci<<255,,i=1,2,3,…L,L=2k-1;
设其中一个分组秘密信息为m,m=[m1,m2,...,mk,mk+1,mj,...,m2k],mj∈{0,1},j=1,2,
3,…2k;
步骤1、将m中的前k位嵌入分组载体图像c中,将m中前k位用n1表示,即把n1=[m1,m2,...,mk]嵌入到c=[c1,c2,…ci,…cL]中,具体包括:步骤1.1对c=c=[c1,c2,…ci,…cL]进行取位,分别取出每个像素的第八位和第七位,将第八位记为LSB位,将第七位记为2LSB位,然后生成分组c的LSB矩阵T1:T1=|2LSBC1LSBC1,2LSBC2LSBC2,…2LSBLLSBL|;
对每个像素的LSB位和2LSB位做异或运算,生成分组c的异或矩阵E1:步骤1.2生成k行(2k-1)列的奇偶校验矩阵G,G中每一列对应整数为1,2,3,…L:步骤1.3把步骤1.1中生成的异或矩阵E1做转置处理,然后与校验矩阵G相乘,判断结果T T是否与n1的转置相等,即判断G×(E1)是否等于n1 ,如是,说明m的前k位信息n1已嵌入成功,此时不需要对分组载体图像c做任何改动,直接进入步骤2;如否,进入步骤1.4;
步骤1.4、计算第一差异d:
d=G×(E1)T-n1T
然后,遍历奇偶检验矩阵G,在奇偶检验矩阵G中找到与第一差异d相同的列所对应的列序号,并用d1表示,然后进入步骤1.5;
步骤1.5、在分组c的LSB矩阵T1中找到与第d1个像素对应的2LSB位和LSB,然后根据最短距离法原则,如果第d1个像素对应的2LSB和LSB为00,则将这两个比特位的数值改为01;如果第d1个像素对应的2LSB和LSB为01,则将这两个比特位的数值改为00;如果第d1个像素对应的2LSB和LSB为10,则将这两个比特位的数值改为11;如果第d1个像素对应的2LSB和LSB为11,则将这两个比特位的数值改为10;
这样,n1=[m1,m2,...,mk]成功嵌入,将嵌入n1后的分组载体图像c生成新的载密分组图像,并用c′表示,c′=[c1′,c2′,…ci′,…cL′],其中ci′表示载密分组图像c′对应像素的灰度值,0<<ci′<<255,,i=1,2,3,…L;
步骤2、将m中后k位用n2表示,即n2=[mk+1,...,m2k],然后将n2嵌入到载密分组图像c′中,具体包括:步骤2.1、对c′=[c1′,c2′,…ci′,…cL′]进行取位,分别取出每个像素的第八位和第七位,将第八位记为LSB位,将第七位记为2LSB位,然后生成载密分组图像c′的LSB矩阵T2:然后只取载密分组图像c′中每个像素的2LSB位,生成载密分组图像c′的位矩阵E2:步骤2.2、生成k行(2k-1)列的奇偶校验矩阵G,G中每一列对应整数为1,2,3,…L;
步骤2.3、把步骤2.1中生成的载密分组图像c′的位矩阵E2做转置处理,然后与校验矩阵G相乘,判断结果是否与n2的转置相等,即判断G×(E2)T是否等于n2T,如是,说明m的后4位信息n2已嵌入成功,此时不需要对载密分组图像c′做任何改动;如否,进入步骤2.4;
步骤2.4、计算第二差异d’:
d’=G×(E2)T-n2T
然后,遍历奇偶检验矩阵G,在奇偶检验矩阵G中找到与第二差异d’相同的列所对应的列序号,并用d2表示,然后进入步骤3.5;
步骤2.5、在载密分组图像c′中找到第d2个像素,设第d2个像素的像素值为ci′,分别统计ci′及其左右两个像素值ci-1′和ci+1′在载密分组c′中出现的概率,分别用h(ci′)、h(ci-1′)和h(ci+1′)表示,然后进入步骤2.6;
步骤2.6、如果ci′=0,则ci′的值减去1,ci+1′的值加1;如果ci′=255,则ci-1′的值加1,ci′的值减去1;如果0<ci′<255,此时分以下三种情况进行处理:第一种情况,如果h(ci-1′)>h(ci+1′),则ci-1′的值加1,ci′的值减去1;
第二种情况,如果h(ci-1′)=h(ci+1′),则ci-1′和ci+1′的值以50%的概率加1,ci′的值减去1;
第三种情况,如果h(ci-1′)<h(ci+1′),则ci′的值减去1,ci+1′的值加1。
这样,n2=[mk+1,...,m2k]成功嵌入,将载密分组图像c′中嵌入n2后生成的图像即为最终载秘分组图像。