LSB 算法matlab改进版,将二值图嵌入多张灰度图像中

将二值图嵌入两张图片并反解

[hpiccover1,hpiccover2] = LSB(piccover1,piccover2,pic2ray);
subplot(2,2,1),imshow(piccover1),title('第一张封面原图')
subplot(2,2,2),imshow(hpiccover1),title('第一张封面嵌入')
subplot(2,2,3),imshow(piccover2),title('第二张封面原图')
subplot(2,2,4),imshow(hpiccover2),title('第二张封面嵌入')
picjie = inLSB(hpiccover1,hpiccover2);
imshow(picjie)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

LSB

function  [piccover1,piccover2] = LSB( piccover1,piccover2,pic2ray ) %piccover第一封面,piccover2为第二封面,pic2ray二值图
[M,N]=size(piccover1);
[m,n]=size(pic2ray);
[r,c]=size(piccover2);
X=min(M,r);
Y=min(N,c);
if(m<=X&&n<=Y)
    for i=1:m
        for j=1:n
            if pic2ray(i,j)==1&&mod(mod(piccover1(i,j),2)+mod(piccover2(i,j),2),2)==1      %若封面一二灰度值相加余数等于隐藏信息值,则不动,因为灰度值有上限,所以不能两个灰度值直接相加
                continue;
            elseif pic2ray(i,j)==0&&mod(mod(piccover1(i,j),2)+mod(piccover2(i,j),2),2)==0
                continue;
            else                     %若封面一二灰度值相加余数不等于,则进行双重随机增加保密性
                a=randsrc;           %随机数a=1或者-1
                if a==1
                    if piccover1(i,j)==0
                        piccover1(i,j)=piccover1(i,j)+1;
                    elseif piccover1(i,j)==255
                        piccover1(i,j)=piccover1(i,j)-1;
                    else
                        piccover1(i,j)=piccover1(i,j)+randsrc;
                    end
                else
                    if piccover2(i,j)==0
                        piccover2(i,j)=piccover2(i,j)+1;
                    elseif piccover2(i,j)==255
                        piccover2(i,j)=piccover2(i,j)-1;
                    else
                        piccover2(i,j)=piccover2(i,j)+randsrc;
                    end      
                end
            end
        end         
    end
else
    fprintf('朋友,封面大小不够唉!')
end
end

inLSB

function picjie = inLSB(hpiccover1,hpiccover2)
[M,N]=size(hpiccover1);
[r,c]=size(hpiccover2);
X=min(M,r);
Y=min(N,c);
picjie=zeros(X,Y);
    for i=1:X
        for j=1:Y
            if mod(mod(hpiccover1(i,j),2)+mod(hpiccover2(i,j),2),2)==1
                picjie(i,j)=255;
            else
                picjie(i,j)=0;
            end
        end
    end
end


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值