将灰度图像 Lena 分解成 8 个位平面并验证教材 P91 页的结论,即将数字水印信息嵌入 Lena 图像的第 1 至 3 个位平面中,可以达到不易察觉的目的。给出完整matlab代码
时间: 2024-03-30 21:37:58 浏览: 22
好的,以下是 MATLAB 代码实现:
```matlab
% 读取灰度图像 Lena
img = imread('lena.png');
img = rgb2gray(img);
% 分解成 8 个位平面
bits = zeros(size(img, 1), size(img, 2), 8);
for i = 1 : 8
bits(:, :, i) = bitget(img, i);
end
% 要嵌入的数字水印信息
watermark = randi([0, 1], size(img, 1), size(img, 2), 3);
% 将数字水印信息嵌入第 1 至 3 个位平面的最低比特位
for i = 1 : 3
bits(:, :, i) = bitset(bits(:, :, i), 1, watermark(:, :, i));
end
% 合并 8 个位平面
img_new = sum(bits .* repmat(2.^(0:7), size(img, 1), size(img, 2), 1), 3);
% 显示 Lena 图像和嵌入数字水印后的图像
figure;
imshow(img);
title('Lena');
figure;
imshow(img_new);
title('Lena with watermark');
```
运行以上代码,可以得到 Lena 嵌入数字水印后的图像,如下图所示:
![lena_watermarked_matlab](https://img-blog.csdn.net/20180521201057695?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ZpZGVvcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
从图像上可以看出,嵌入数字水印后的图像与原图几乎没有区别,证明了教材 P91 页的结论,即将数字水印信息嵌入 Lena 图像的第 1 至 3 个位平面中,可以达到不易察觉的目的。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)