基于差值扩展的可逆水印方法

1.将图像分成像素点对(x, y) x,y∈Z,0≤x,y≤255

个人认为,这个拆分过程需要专门记录,就是记录了图像中哪两个像素组成了这个像素对,这是为了能后续还原出水印。

2.定义其整数均值l 和差值h 

基于差值扩展的可逆水印方法_第1张图片                                   基于差值扩展的可逆水印方法_第2张图片

             公式一                                                                          公式二

 3.将秘密比特信息m以差值扩展的方法嵌入到差值h中:

 4.将得到的h′代入公式二中,得到新的图像像素对,形成嵌入秘密信息后的图像。

5.为了保证可逆隐藏后的数据没有溢出,设载体图像为8bit的灰度图像,可得某像素点对进行可逆数字水印的条件。

以任意一个像素对举例

加密过程:

(1)假设一个图像对为(206,201)即x=206,y=201

(2)l = floor((x+y)/2) = 203     h=206-201=5

(3)将h转化为二进制101

(4)假如我们对于这个像素对要嵌入的秘密消息m=1,则把1加入到101的LSB上得到h'

(5)得到h' = 1011 即 h' = h*2+m = 2*5+1 = 11

(6)把h'带入公式二得到:x' = 203+ floor((11+1)/2) = 203+6 = 209  y'=203 - floor((11)/2) = 198

(7)故加密得到的信息为(x',y')=(209,198)

解密过程:

(1)已知(x',y')=(209,198)

(2)计算 l' = floor((x'+y')/2) = 203  h' = x' - y' = 11

(3)m = LSB(h') = LSB(1011) = 1     //就是求h'的最后一个比特位

(4)h = floor(h'/2) = 5

(5)x =  l'+ floor((h+1)/2) = 203 + 3 = 206    y = l'-floor(h/2) = 203-2 = 201

(6)故还原出原始像素对(x,y) = (206,201) 秘密消息 m = 1

参考文献:

Jun Tian   Reversible Data Embedding Using a Difference Expansion

你可能感兴趣的:(算法)