admin管理员组

文章数量:1530059

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

本文标签: 算法基础LSBmatlab