LSB基础算法matlab实现
什么是LSB算法
LSB(least significant bit)翻译过来为最低有效位。
在灰度图像中,图像的灰度由八位二进制来表示即十进制中0-255,共256级别,255则为白色,反之0为黑色。自然,二进制位越靠前则对像素点灰度的影响越大,从这点出发,则考虑更改像素点灰度值最低位来隐藏信息,这样对原图像的改变比较小。
算法如下
pichide=LSB(piccover,pic2ray,M,N,m,n);%M,N为封面行列,m,n为二值图行列,将二值图隐写进封面中
subplot(1,2,1),imshow(pichide)
subplot(1,2,2),imshow(piccover); %展示封面和隐藏信息后图像的对比
picjie=(pichide,m,n);%提取出隐藏信息
imshow(picjie);
LSB.m
function piccover = LSB( piccover,pic2ray,M,N,m,n ) %piccover封面,pic2ray二值图,M,N封面行列,m,n二值图行列
if(m<=M&&n<=N)
for i=1:m
for j=1:n
if pic2ray(i,j)==1&&mod(piccover(i,j),2)==1
continue;
elseif pic2ray(i,j)==1&&mod(piccover(i,j),2)==0
piccover(i,j)=piccover(i,j)+1;
elseif pic2ray(i,j)==0&&mod(piccover(i,j),2)==0
continue;
elseif pic2ray(i,j)==0 && mod(piccover(i,j),2)==1
piccover(i,j)=piccover(i,j)-1;
end
end
end
else
fprintf('朋友,封面大小不够唉!')
end
end
inLSB.m
function pichide = inLSB(pichide,m,n)
for i=1:m
for j=1:n
if mod(pichide(i,j),2)==1
pichide(i,j)=255;
else
pichide(i,j)=0;
end
end
end
end
更多推荐
基础LSB算法的matlab实现
发布评论