基于matlab的lsb数字水印
写本文的目的是记录自己做过的一些东西,深化理解,理清思路,便于回忆。 数字水印将标识信息直接嵌入数字载体,而不影响原载体的使用价值,使用者不易察觉但可以被生产方识别和辨认,可以保护信息安全,实现防伪溯源,也是信息隐藏技术的研究领域之一。 LSB(least significant bits)是最为简单的数字水印制造方法,可以保证水印不被使用人所见,但可以被制造者辨认。 算法原理:通俗来讲我们看到的图片都是由一个个小的像素点来构成的,所有像素点摆在一起,构成一个大方块,这个大方块就是我们所见的图像。灰度图像(也就是我们平时所说的黑白图像)是由一层像素点组成的,而彩色图像是由三层这样的灰度图像组成的。这里拿灰度图像举例,我们之所以能在图像上看到黑色和白色,是因为每个像素点的像素值不同。0表示纯黑,255表示纯白,灰色就是由这两个数字之间的值构成。越靠近0越黑,越靠近255越白。那为什么是0和255呢?因为计算机是二进制,它会用8个比特来表示一个像素点,所以最大值是255,最小是0。lsb就是基于2进制来隐藏信息的,因为人眼并不是很精密的颜色或亮度的感知器,所以把像素上下微调1是不会被人眼察觉的,当我们把图片每个像素的最后一位按照我们的想法改变,使他表现为我们想要的信息,这就是lsb数字水印。 首先引入一张灰度图像 (从微博上弄下来的,源程序和图片都不见了)