图象隐藏算法
               待隐藏的图象(A)

载体图象(B)                       隐秘图象(B)

图4.1.1 信息隐藏
量化是JPEG压缩方法中造成数据损失的原因,为确保待隐藏信息不失真,可在量化后的数据中隐藏信息,而为与量化的数据相匹配,隐藏JPEG图像的量化后数据效果则最佳。此算法适用于把一个图像隐藏在另一个不小于它的图像中。
该隐藏算法的算式可表示为:
FqA’ (u,v)=FqA(u,v)+f(FqB(u,v));
式中 FqA’ (u,v)是隐藏了信息的 A图的量化值,FqA(u,v)、 FqB(u,v)分别是 A图和 B图的量化后值,它们都是8×8 的矩阵。函数f()是变换算法。
在找出较佳的f()函数之前,需要比较许多与表3一样的Fq(u,v)矩阵。
表3 一个量化后的矩阵
19    5    1    0    0    0    0    0
2    -1    0    0    0    0    0    0
2    0    -1    0    0    0    0    0
2    0    0    0    0    0    0    0
1    0    0    0    0    0    0    0
1    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
如表3所示,图像原始数据(针对每个8×8的小块来讲)经过DCT变换再量化后的量化矩阵Fq(u,v)的数据多集中于矩阵左上角的低频部分,值大于10的数据则更少,除直流数值外往往仅低频的四、五个,中、高频多为零,且对图像的影响较小,这也正是压缩方法的压缩比远远大于其它方法的主要原因。
对于一幅图像每个8×8的小块,只需要保存左上角10个左右的数据就可以把这幅图像保存。此隐藏方法中,对于每个8×8的小块,选择隐藏表4中标有‘*‘位置的14个数据。相对应的作为载体图像,这里有64个数据位置,可用来隐藏那14个数据,原则就是尽可能地不影响载体图像的视觉效果。根据多次实验得知,首先,直流部分代表了一幅图的一个模块的基本信息是不能改动的;再者,高频部分虽说对图像的影响较低频小,这在量化的时候已经加以调节了,故量化后对高、低频改动同等数据,应该对原图的影响是大致相当地;另外,高频部分多为零,隐藏信息以后,较容易被发现,故最终把数据隐藏在低、中频的个数据里。
表4
*    *    *    *    *    0    0    0
*    *    *    *    0    0    0    0
*    *    *    0    0    0    0    0
*    *    0    0    0    0    0    0
0    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
具体的方法参见图4.1.2,是对表5进行 f()变换的过程,首先把待隐藏图像的Fq(u,v)矩阵中的数据分成AB两个矩阵: Fq(u,v)=A*10+B。分别用A左上角6个元素和B的14个元素构建矩阵C,C=f(FqB(u,v))。
其中矩阵C中每个元素的值的获得见表5:
表5 C矩阵
0    B(1,2)    B(1,3)    B(1,4)    B(1,5)    A(1,1)    0    0
B(2,1)    B(2,2)    B(2,3)    B(2,4)    A(1,2)    0    0    0
B(3,1)    B(3,2)    B(3,3)    A(2,1)    0    0    0    0
B(4,1)    B(4,2)    A(1,3)    0    0    0    0    0
B(1,1)    A(2,2)    0    0    0    0    0    0
A(3,1)    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
0    0    0    0    0    0    0    0
对Fq(v,u)进行拆分减小了隐藏数据的绝对大小,减小了对原图的影响;因为大于10的数很少,除直流外几乎没有,故把十位放在中高频部分,并采用上述顺序,可提供隐藏了数据的图像的压缩比。
为减小对原始图像的影响,可把待隐藏图像的量化所用的量化表(即矩阵Q(u,v)乘一个系数,这次实验选用2。当然,量化系数越大,对原图的影响就越小,但对待隐藏图像的失真就越大,反之亦然。每次隐藏可根据需要的不同选择不同的系数。




请问有谁会这个编程的教我一下,我会非常感谢你的啊