1、用MATLAB函数实现LSB信息隐藏和提取;
时间: 2023-05-30 07:02:27 浏览: 302
LSB信息隐藏实验 matlab代码及实验报告
5星 · 资源好评率100%
以下是基本的LSB信息隐藏和提取MATLAB代码示例:
1. LSB信息隐藏
```matlab
% 加载载入图像
I = imread('lena.png');
% 提取图像的红色通道
R = I(:,:,1);
% 将待隐藏的信息编码成二进制字符串
message = 'Hello, World!';
binaryMessage = dec2bin(message, 8);
% 为每个像素的最低有效位设定二进制信息
binaryMessageIndex = 1;
for i = 1:size(R, 1)
for j = 1:size(R, 2)
binaryPixel = dec2bin(R(i,j), 8);
binaryPixel(8) = binaryMessage(binaryMessageIndex);
binaryMessageIndex = binaryMessageIndex + 1;
if binaryMessageIndex > length(binaryMessage)
break;
end
R(i,j) = bin2dec(binaryPixel);
end
if binaryMessageIndex > length(binaryMessage)
break;
end
end
% 将隐藏了信息的图像写入新的文件
I(:,:,1) = R;
imwrite(I, 'lena_stego.png');
```
2. LSB信息提取
```matlab
% 加载载入图像
I = imread('lena_stego.png');
% 提取图像的红色通道
R = I(:,:,1);
% 初始化二进制消息字符串
binaryMessage = '';
% 提取每个像素的最低有效位的二进制信息
for i = 1:size(R, 1)
for j = 1:size(R, 2)
binaryPixel = dec2bin(R(i,j), 8);
binaryMessage = strcat(binaryMessage, binaryPixel(8));
end
end
% 将二进制消息转换为文本消息
message = char(bin2dec(reshape(binaryMessage, 8, [])').');
% 输出提取的消息
disp(message);
```
阅读全文