信息隐藏(2)---直接4bit替换

所谓直接4bit 替换法, 就是直接用秘密图像像素值的高4bit 去替换载体图像像素值的低4bit

% 函数功能: 直接将秘密图像的高4bit 隐藏在RGB 载体图像的R, G, B 层中所选的那一层的低4bit, 
% 并将秘密图像提取出来, 最后显示。要求载体图像的大小大于等于秘密图像的大小, 且秘密图像是二值或灰度图像
% 输入格式:
% data = imagehide( ‘c: \ lenna. bmp’, ‘c: \woman. bmp’,‘c: \mix. bmp’, ‘bmp’, 3 )
% 参数说明:
% cover 是载体图像的地址
% message 是秘密图像的地址
% goleimage 是隐藏后图像的地址
% permission 是图像的类型
% level 是作为载体的具体层, R 为1 , G 为2, B 为3
% data 是隐藏后图像的矩阵
function data = imagehide( cover, message, goleimage, permission, level)
% 提取图像信息并分层
cover = imread( cover, permission) ;
data = cover ;
msg = imread( message, permission) ;
[ row, col] = size( cover) ;
cover1 = cover(:,:, level) ;
% 置载体图像R 层的低4bit 为0
for i = 1:row
for j = 1:col /3
cover1( i, j) = bitand( cover1( i, j) , 240) ;%px&11110000  像素的低4bit置零
end
end
% 置秘密图像的低4bit 为0
takemsg4 = bitand( msg, 240) ;
% 将秘密图像的高4bit 右移4 位
shiftmsg4 = bitshift( takemsg4, - 4) ;
% 图像隐藏
for i = 1:row
for j = 1:col /3
cover1( i, j) = bitor( cover1( i, j) , shiftmsg4( i, j) ) ;
end
end
% 写回并保存
data(:,:, level) = cover1;
imwrite( data, goleimage, permission) ;
% 提取秘密图像信息, 检测隐藏效果
data = imread( goleimage, permission) ;
[ row, col] = size( data) ;
A = data(:,:, level) ;
for i = 1:row
for j = 1:col /3
A( i, j) = bitand( A( i, j) , 15) ;
end
end
A = bitshift( A, 4) ;
% 显示结果
subplot( 221) , imshow( cover) ; title( '载体图像') ;
subplot( 222) , imshow( message) ; title( '秘密图像') ;
subplot( 223) , imshow( data) ; title( '隐藏后的图像') ;
subplot( 224) , imshow( A) ; title( '提取的秘密图像') ;
显示结果,如下



  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值