数字图像处理 信息隐藏 LSB算法

本文介绍了如何使用位平面分解和Least Significant Bit (LSB) 算法在MATLAB中实现数字图像的信息隐藏。通过将图像的灰度值转化为八位二进制并提取位平面,将隐藏信息嵌入到对图像影响最小的位平面中,然后通过逆过程提取信息,实现图像的隐秘通信。
摘要由CSDN通过智能技术生成

灰度图像可以进行位平面分解,图像的灰度值在0-255直接,所以可以将每个像素点的十进制数值都转变为八位的二进制,将所有像素点的这八位二进制数的同一位提取出来组成图像,就可以分解组成八张位平面图像。
在对图像影响最小的位平面图像中,进行一些数值的修改,人的肉眼难以察觉,所以可以将待嵌入的图像也转化为二进制,嵌入到这些位平面当中,从而实现图片的信息隐藏。
而提取的过程则是逆向地将嵌入后的图片的对应位置的数值再提取出来组合成图片。

嵌入函数:

function [stegoI,emD,bitsnum]=LSB_en(cover,face)
stegoI = cover; %构建一个与原载体图像相同大小的容器
num = numel(cover);%统计像素的个数

data = dec2bin(face);%将待嵌入数据转换成二进制形式
data = strcat(char(data)', '');%将其转换成字符数组
% data = cellstr(data)' 字符向量元胞数组
data = str2num(data(:));%将其转换成整数数组

bitsnum=numel(data);%统计待嵌入数据总长度
%先对载体图像最低位进行嵌入
k = 0;
for j=1:num
    k = k + 1;
    stegoI(j)=bitset(cover(j),1,data(k));%bitset函数将cover的第1位置换为data
end

%256*256*8 = 512*5122 所以仅用容器的一位无法嵌入所有数据
%再对载体图像次低位进行嵌入
for j=1:num
    k = k + 1;
    stegoI(j)=bitset(stegoI(j),2,data(k));
end
emD=data(1:bitsnum);%emD为嵌入的数据
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值