基于Matlab和LSB位平面分解算法的数字水印技术

基于Matlab和LSB位平面分解算法的数字水印技术

数字水印技术,基于LSB算法图像信息隐藏
代码库Github链接为:https://github.com/Resulte/digital-watermarking
(希望您去Github的时候可以顺手给个Star)

1、基本原理

首先将原始图片位平面分解:

在这里插入图片描述

可以看到一幅256灰度的图像为例, 256灰度共需要8个位来表示, 但其中每一个位的作用是不一样的, 越高位对图像的影响越大, 反之越低的位影响越小, 甚至不能感知。

从几个位平面图中可以看出, 较高的位平面反映的图像的轮廓等主要信息, 而较低的位平面反映的是图像的细节信息, 最低的2个位平面看上去和图像几乎没有相关性, 像是噪声。

故LSB算法利用了数字图像处理中位平面的原理, 即改变图像的最低位的信息, 对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉。基于这个原理, 如果将最低位替换成数字水印的数据, 人眼也难以察觉加入数字水印前后的图像的变化, 这样就能够实现数字水印的不可感知性。

LSB 算法简单实现容易, 同时可以保证数字水印的不可见性, 由于可以在最低位的每个像素上都插入数字水印信息, 因此有较大的信息嵌入量。但是由于数字水印位于图像的不重要像素位上, 因此很容易被图像过滤、量化和几何型变等操作破坏, 以致无法恢复数字水印。

2、水印嵌入

要嵌入的水印的信息:

水印

嵌入到LSB位平面后:

LSB

可以主观的看到,两幅图像的差别是非常小的,人眼的视觉感知系统很难感知。这样就能够实现数字水印的不可感知性。

我们也可以对比一下将水印嵌入到其他位平面的效果:

其他位平面

也可以很主观的看到,嵌入的位平面越高,能感知到的水印信息也越多。

3、客观评价

当然我们也计算一些客观评价指标来衡量:

位平面0嵌入信息后的PSNR:50.5353,SSIM: 0.9970

位平面1嵌入信息后的PSNR:44.5323,SSIM: 0.9883

位平面2嵌入信息后的PSNR:38.5038,SSIM: 0.9559

位平面3嵌入信息后的PSNR:32.5212,SSIM: 0.8633

位平面4嵌入信息后的PSNR:26.2755,SSIM: 0.6746

位平面5嵌入信息后的PSNR:20.5513,SSIM: 0.4933

位平面6嵌入信息后的PSNR:14.3360,SSIM: 0.2566

位平面7嵌入信息后的PSNR:7.8879,SSIM: 0.1071

位平面越高,PSNR越小,SSIM也越小。

与前面实验中得到的主观差别趋势是一致:位平面越高,与原图差异越大,隐藏信息暴露出来的越多。

综上,在LSB位平面也就是位平面0嵌入的客观评价指标是最好的,所以选择LSB位平面嵌入水印。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值