EMD是 Xinpeng Zhang 和 Shuozhong Wang 在2006年提出的一种信息隐藏技术。其原理是将 n 个像素当作一个群组,根据定义函数 f 对像素群众的一个像素值进行 ±1 调整来隐藏 2n+1 进制的秘密数字信息。
式中,xi 为像素群中的第 i 个像素。
EMD算法:
输入:灰度载体图像X、秘密信息序列串S、像素群参数n
输出:带有秘密信息的灰度图像Y
step1:根据所选择的n值,将载体图像X以每n个像素为一个群组分割,并将秘密信息序列S转换为(2n+1)进制数字串。
假设n=2,载体图像X的一个群组为(25,27,23,30),嵌入的秘密信息为1010(二进制) = 20(五进制)。
S=20
step2:将像素群中的n个像素依次代入上述公式中,计算 f(x1,x2) 。
f(25,27) = (25x1+27x2)mod(5)=4
f(23,30) = (23x1+30x2)mod(5)=3
step3:求 S 与 f (x1,x2) 之间的差值 d=(S - f(x1,x2))mod(2n+1)。
d =(S - f(x1,x2))mod(5) = (2 - 4)mod(5) =3
d =(S - f(x1,x2))mod(5) = (0 - 3)mod(5) =2
step4:假设 Pi 为像素群中第 i 个像素值。根据EMD嵌入位置的规则,调整其像素值。即:当 d=0 ,不改变像素值,当 d<=n 时,则调整该像素群中的像素P(d) +1,当d>n时,P((2n+1)-d) - 1。
P2 = P2 - 1
P2 = P2 + 1
其它情况如下:
d =(S - f(x1,x2))mod(5) = 0 不改变像素值
d =(S - f(x1,x2))mod(5) = 1 ,P1 = P1 + 1
d =(S - f(x1,x2))mod(5) = 2 ,P2 = P2 + 1
d =(S - f(x1,x2))mod(5) = 3 ,P(5-3) = P2 + 1
d =(S - f(x1,x2))mod(5) = 4 ,P(5-4)= P1 + 1
step5:重复上述步骤,,将所有秘密信息处理完后停止。
嵌入秘密信息后的像素群为 (25,26,23 ,31)
提取秘密信息:
f(25,26) = (25x1+26x2)mod(5)=2
f(23,31) = (23x1+31x2)mod(5)=0
即 20(五进制) = 1010(二进制)