实验内容与原理
LSB(Least Signicant Bit)算法是将秘密信息嵌入到载体图像像素值的最低有效位,也称最
不显著位,改变这一位置对载体图像的品质影响最小。 LSB 算法的基本原理:对空域的
LSB 做替换,用来替换 LSB 的序列就是需要加入的水印信息、水印的数字摘要或者由水印生
成的伪随机序列。由于水印信息嵌入的位置是 LSB,为了满足水印的不可见性,允许嵌入
的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著
分量进行一定的压缩,所以 LSB 算法对这些操作很敏感。因此 LSB 算法最初是用于脆弱性
水印的。
LSB 算法基本步骤:
1、 将得到的隐藏有秘密信息的十进制像素值转换为二进制数据;
2 、用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位;
3、 将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像。
LSB 算法代码:
funcon y=abstract(x,m,n)
%此函数提取除了 m 到 n 层的图像
xd=double(x);
numbin=ones(1,8);
numbin(m:n)=0;
numdec=numbin2dec(numbin);
y=uint8(bitand(xd,numdec));
funcon y=abstractdown(x,m)
%此函数提取提取最低的 8-m 层的图像
xd=double(x);
numbin=ones(1,8);
numbin(1:m)=0;
numdec=numbin2dec(numbin);
yd=bitand(xd,numdec);
y=uint8(yd*2^m);
funcon y=bin2im(x,m,n)
%此函数将二进制比特串 x 转换成 m*n 的二值图像
for i=1:m
for j=1:n
yd(i,j)=x((i-1)*n+j);
end
end
y=yd;
funcon y=im2bin(x)
%此函数将二值图像转换为一维的二进制的比特串,参数 x 表示输入的二值图像
xd=double(x);