基于图像编码及拼接的无载体信息隐藏 matlab代码
时间: 2024-05-16 07:13:08 浏览: 72
以下是一个基于图像编码及拼接的无载体信息隐藏的 Matlab 代码示例:
```matlab
% 加载图像
img = imread('test.jpg');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 获取图像大小
[height, width] = size(img_gray);
% 提取像素值及二进制编码
img_bin = reshape(dec2bin(img_gray)', [], 1) - '0';
% 隐藏信息
msg = 'Hello World!';
msg_bin = dec2bin(msg, 8)' - '0';
msg_len = length(msg_bin);
idx = randperm(numel(img_bin), msg_len);
img_bin(idx) = msg_bin;
% 将二进制编码转换为像素值
img_gray_new = reshape(img_bin, [], 8) * [128 64 32 16 8 4 2 1]';
img_new = repmat(img, [1 1 3]);
img_new(:,:,1) = img_gray_new;
img_new(:,:,2) = img_gray_new;
img_new(:,:,3) = img_gray_new;
% 显示原始图像和隐藏信息后的图像
subplot(1,2,1), imshow(img), title('Original Image');
subplot(1,2,2), imshow(img_new), title('Image with Hidden Message');
```
该代码将读取一张名为 "test.jpg" 的图像,将其转换为灰度图像,然后将每个像素值转换为 8 位二进制编码。然后,通过随机选择像素值并替换为隐藏的信息的二进制编码,将信息隐藏在图像中。最后,将修改后的二进制编码转换回像素值,并用新的像素值创建一个新的彩色图像,其中隐藏了信息。最后,显示原始图像和隐藏信息后的图像。
阅读全文