基于Matlab的数字水印设计 - 基于空域的水印实现(3)

2020-02-21 18:01

沈阳理工大学数字图像处理课程设计

4.2.2 水印提取算法

clear all;

file_name='lsb_watermark.bmp';

watermark_image=imread(file_name); %读入嵌入水印图像

Mw=size(watermark_image,1); %嵌入水印图像行数 Nw=size(watermark_image,2); %嵌入水印图像列数

file_name='word.bmp';

orig_watermark=imread(file_name); %读入原始水印

Mm=size(orig_watermark,1); %水印的行数 Nm=size(orig_watermark,2); %水印的列数

for ii=1:Mw for jj=1:Nw

%用嵌入水印图像的最低有效位重建水印

watermark(ii,jj)=bitget(watermark_image(ii,jj),1);

%用bitget()函数重建水印

end end

watermark=2*double(watermark); %将提取水印变为原始水印大小 for ii=1:Mm-1 for jj=1:Nm-1

watermark1(ii+1,jj+1)=watermark(ii,jj); end end

9

沈阳理工大学数字图像处理课程设计

watermark1(1,1)=watermark(Mm,Nm);

figure(1) subplot(1,2,1);

imshow(watermark_image,[])

title('嵌入水印图像') %显示嵌入水印后的图片

figure(2) subplot(1,2,1); imshow(watermark1,[])

title('提取水印') %显示原始图片

figure(2) subplot(1,2,2);

imshow(orig_watermark,[])

title('原始水印') %显示水印图片

算法分析:

这里选用一幅200×200像素、256灰度的图像,数字水印用纯文字二值图像。MATLAB中可以用bitget()函数实现提取数字水印数据。

提取水印的方法是:watermark(ii,jj)=bitget(watermark_image (ii, jj) ,1),watermark_image表示要嵌入水印的图像,1表示在最低位提取,2表示在第二个位平面提取,以此类推,最高位是8。

10

沈阳理工大学数字图像处理课程设计

5 MATLAB软件仿真

用MATLAB软件对上述水印嵌入和提取算法源程序代码进行编译、仿真,可以得到如下仿真结果,对仿真图分析,可以得到相应的结论。

5.1 仿真结果

5.1.1 水印嵌入仿真

水印图像如图5.1所示,是200×200像素图像,256灰度图像,是颜色单一的二值文字“你好吗”图像。

图5.1 水印图像

图5.2 嵌入水印前 图5.3 嵌入水印后

图5.2是原始图像,这是一幅200×200像素的彩色图像,由于LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,图像信息产生的影响非常小,

11

沈阳理工大学数字图像处理课程设计

人眼的视觉感知系统往往不能察觉,因此嵌入水印后,如图5.3看起来嵌入水印后的图像与原始图像没有区别。

若改变图像的较高位信息,修改语句w_i(ii,jj)=bitset(w_i(ii,jj),1,m(ii,jj));为w_i(ii,jj)=bitset(w_i(ii,jj),8,m(ii,jj));如图5.4、图5.5所示。

图5.4 嵌入水印前 图5.5 嵌入水印后

对比嵌入水印时改变高、低位信息,即对比图5.5和图5.3,可以发现当改变图像高位信息时,可以从肉眼看出嵌入水印图像后与原始图像有细微差别(为了可以更清晰的效果,我们选用8位),因此选用低位1可以实现较高的保密性,不易被察觉,并且可以保证原始图像的特征属性,便于选择和提取。

5.1.2 水印提取仿真

嵌入水印后的图像如图5.6所示,由于LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉,看起来嵌入水印后的图像与原始图像没有区别。

12

沈阳理工大学数字图像处理课程设计

图5.6 嵌入水印图像

图5.7提取的水印图像 图5.8 原水印图像

图5.7是对图像进行低位水印提取,与原水印图像(图5.8)相比较,可以发现提取的水印很模糊,但能够看得出原始水印的轮廓。

5.2 仿真分析

LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉。以一幅256灰度的图像(图5.2)为例,256灰度共需要8个位来表示,但其中每一个位的作用是不一样的,对比图5.5、图5.3,越高位对图像的影响越大,而越低的位影响越小,甚至不能感知。

由于是在最低位嵌入数字水印图像,因此嵌入前的图像和嵌入后的图像没有明显的差别,数字水印得到更好的隐藏。MATLAB程序如上,其中word.bmp是水印图像文件,color.bmp是原始图像文件,lsb_watermark.bmp是嵌入水印之后的图像文件。

13


基于Matlab的数字水印设计 - 基于空域的水印实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:4.2.2化学电源(人教版选修4)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: