基于Matlab的数字水印设计基于空域的水印实现.docx

上传人:叶*** 文档编号:35111015 上传时间:2022-08-20 格式:DOCX 页数:18 大小:29.54KB
返回 下载 相关 举报
基于Matlab的数字水印设计基于空域的水印实现.docx_第1页
第1页 / 共18页
基于Matlab的数字水印设计基于空域的水印实现.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《基于Matlab的数字水印设计基于空域的水印实现.docx》由会员分享,可在线阅读,更多相关《基于Matlab的数字水印设计基于空域的水印实现.docx(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、摘 要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。本实验是基于matlab的数字水印设计基于空域的水印实现。关键词:信息隐藏技术;空间数字水印; LSB算法;matlab第 15 页目 录1 设计任务及目的12 M

2、ATLAB的简介及应用12.1 MATLAB简介12.2 MATLAB应用13 数字水印技术23.1 数字水印技术的发展23.2 水印分类23.3 数字水印的特点33.4 数字水印技术的基本原理44 基于LSB的数字水印算法54.1 LSB算法原理54.2 LSB算法的实现64.2.1 水印嵌入算法74.2.2 水印提取算法95 MATLAB软件仿真115.1 仿真结果115.1.1 水印嵌入仿真115.1.2 水印提取仿真125.2 仿真分析13结 论14参考文献15基于Matlab的数字水印设计基于空域的水印实现1 设计任务及目的(1) 通过课程设计把自己在大学中所学的知识应用到实践当中。

3、(2) 在课程设计的过程中掌握程序编译及软件设计的基本方法。(3) 深入了解利用Matlab设计基于Matlab的数字水印设计基于空域的水印实现。(4) 提高自己对于新知识的学习能力及进行实际操作的能力。(5) 锻炼自己通过网络及各种资料解决实际问题的能力。2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言与交互式环境,主要包括MATLAB与Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称,与Mathematica、Map

4、le并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数与数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理及通讯、图像处理、信号检测、金融建模设计及分析等领域。2.2 MATLAB应用MATLAB 产品族可以用来进行以下各种工作:1) 数值分析2) 数值与符号计算3) 工程及科学绘图4) 控制系统的设计及仿真5) 数字图像处理 技术6) 数字信号处理 技术7) 通讯系统设计及仿真8) 财务及金融工程MATLAB 的应用范围非常广,包括信号与图像处理、通讯、控制系统设计、测试与测量、财务建模与分析

5、以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。3 数字水印技术3.1 数字水印技术的发展数字水印是一个崭新的信息隐藏技术,首次提出这个概念至今也不到20年。由于还处在学术研究的高峰阶段,仅有少数应用研究与应用案例,所以还没有形成国际标准、国家标准与行业标准,目前发现除了国际知名的五家电脑及消费型电子产品主流公司,包括IBM及索尼等已就数字水印技术的共同标准达成协议的报道外,仅发现有成都宇飞信息工程有限责任公司起草并获得国家标准化部门备案的两个企业标准印刷打印数字水印软件(备案号:1104-200

6、2)与基于内容的、非密码机制的计算机及移动存储设备信息安全系统企业标准(备案号:400-2010)。所以,学术界对数字水印技术的概念也没有统一的表述与界定。3.2 水印分类数字水印技术可以从不同角度进行分类,因此有多种分类方法。1) 按特性划分按水印的特性可以将数字水印分为鲁棒数字水印与易损数字水印两类。2) 按水印所附载的媒体划分按水印所附载的媒体,我们可以将数字水印划分为图像水印、音频水印、视频水印、文本水印以及用于三维网格模型的网格水印等。3) 按内容划分按数字水印的内容可以将水印划分为有意义水印与无意义水印。4) 按用途划分按水印的用途,我们可以将数字水印划分为票证防伪水印、版权保护水

7、印、篡改提示水印与隐蔽标识水印。5) 按水印隐藏的位置划分按数字水印的隐藏位置,我们可以将其划分为时(空)域数字水印、频域数字水印、时/频域数字水印与时间/尺度域数字水印。时(空)域数字水印是直接在信号空间上叠加水印信息,而频域数字水印、时/频域数字水印与时间/尺度域数字水印则分别是在DCT变换域、时/ 频变换域与小波变换域上隐藏水印。随着数字水印技术的发展,各种水印算法层出不穷,水印的隐藏位置也不再局限于上述四种。应该说,只要构成一种信号变换,就有可能在其变换空间上隐藏水印。本实验重点研究基于空域的数字水印技术。3.3 数字水印的特点作为数字水印技术基本上具有下面几个方面的特点。1)安全性:

8、数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加有很强的抵抗性2)隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;不会降质;3)鲁棒性:是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模及模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。主要用于版权保护的数字水印易损水印(Fragile Watermarking),主要用于完整性保护。当内容发生改变时,这些水印信息会发生相

9、应的改变,从而可以鉴定原始数据是否被篡改。4)水印容量:是指载体在不发生形变的前提下可嵌入的水印信息量。嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。尤其是隐蔽通信领域的特殊性,对水印的容量需求很大。3.4 数字水印技术的基本原理数字水印技术(Digital Watermark):技术是将一些标识信息(即数字水印)直接嵌入数字载体(包括多媒体、文档、软件等)当中,但不影响原载体的使用价值,也不容易被人的知觉系统(如视觉或听觉系统)觉察或注意到。目前主要有两类数字水印,一类是空间数字水印,另一类是频率数字水

10、印。空间数字水印的典型代表是最低有效位(LSB)算法,其原理是通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。数字水印的主要目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏与修改,同时数字水印要能够被提取或者能够被检测到。数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。数字水印的嵌入与提取或检测的通用模型如图3.1、图3.2所示。水印信息加入水印的信息数字水印嵌入算法原始信息密钥原始信息图3.1 数字水印的嵌入过程

11、加入水印的信息数字水印提取/检测算法加入水印的信息密钥图3.2 数字水印的提取或检测过程图3.1是数字水印的嵌入过程,通过密钥可以提高数字水印的隐藏性、抗攻击性,并非必须的输入。根据不同的用途,嵌入的水印有些是需要还原的,而有些则需要验证水印的存在性,前者需要数字水印的提取算法,而后者需要数字水印的检测算法,根据具体的水印算法,嵌入或提取过程可能有所不同。数字水印技术是从信息隐藏技术发展而来的,是数字信号处理,图像处理,密码学应用,算法设计等学科的交叉领域。数字水印最早在1993年由Tirkel等人提出,在国际学术会议上发表题为”Electronicwatermark”的第一篇有关水印的文章,

12、提出了数字水印的概念及可能的应用,并针对灰度图像提出了两种向图像最低有效位中嵌入水印的算法。1996年在英国剑桥牛顿研究所召开了第一届国际信息隐藏学术研讨会,标志着信息隐藏学的诞生。4 基于LSB的数字水印算法4.1 LSB算法原理最低有效位方法是最早提出来的最基础的空域图像信息隐藏方法,其他的许多空域算法都是从它的基本原理进行改进扩展得到的,使得LSB方法成为使用最广泛的隐藏技术之一。现在有一些简单信息隐藏软件大多是运用LSB与调色板调整等相关技术将信息隐藏在24bit图像或256色图像之中,如:Hide and Seek,Stego-Dos,White Noise S-tools等经典信息

13、隐藏软件。最低有效位( least significant bit,LSB)指的是一个二进制数字中的第0位(即最低位),具有权值为20,可以用它来检测数的奇偶性。最低有效位与最高有效位是相对应的概念。在大端序中,lsb指最右边的位。LSB(全大写)有时也指Least Significant Byte,指多字节序列中最小权重的字节。LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉。以一幅256灰度的图像为例,256灰度共需要8个位来表示,但其中每一个位的作用是不一样的,越高位对图像的影响越大,反之越低的位影响越小,甚

14、至不能感知。图4.1显示了一幅200200像素的图像的8个位平面。图4.1 200200像素图像的8个位平面图4.1中的第一张是原始图像,后面依次是从高到低的位平面。可以看出,较高的位平面反映了图像的轮廓等主要信息,而较低的位平面反映的是图像的细节信息,最低的2个位平面看上去与原始图像几乎没有相关性,像是噪声。4.2 LSB算法的实现LSB算法实现较为简单,首先,需要考虑嵌入的数字水印的数据量,如果嵌入最低的1位,则可以嵌入的信息量是原始图像信息量的1/8,如果适用最低两位则可以嵌入的信息量是1/4,以此类推。适用的最低位越多,嵌入的数字水印的信息量越大,同时对图像的视觉效果影响也越大。然后,

15、适当调整数字水印图像的大小与比特位数,以适应数字水印图像数据量的要求。最后,对原始图像中要使用的最低位置0,再将数字水印数据放入原始图像的最低位即可。下面通过MATLAB7.1来实现这一算法。LSB算法原理程序代码:clc;clear all;A = imread(color.bmp); % 显示原始图像subplot(3,3,1);imshow(A);title(原始图像); % 显示8个位平面图像for i=8:-1:1 A_bitplane = bitshift(bitget(A,i),i-1); subplot(3, 3, 9-i+1); %显示8个位图 imshow(A_bitpla

16、ne); title(位平面 num2str(i);end MATLAB是MathWorks公司推出的一套高性能的数值计算与可视化工具软件,利用MATLAB只需要几个函数与十来行语句就可以实现基本的LSB算法,而如果用C语言等程序语言来实现则可能需要上百行的语句。以下是水印嵌入算法与提取算法的程序代码。4.2.1 水印嵌入算法C,map=imread(color.bmp); %读入原始图片m,map1=imread(word.bmp); %读入水印图片Mc=size(C,1); %原图的行数Nc=size(C,2); %原图的列数Mm=size(m,1); %水印的行数Nm=size(m,2)

17、; %水印的列数w_i=C; %将原图值赋给w_ifor ii=1:Mc; %将原图的最低有效位值换为水印的值 for jj=1:Nc; w_i(ii,jj)=bitset(w_i(ii,jj),1,m(ii,jj);%调用bitset()函数将原图的最低位值换为水印的值 endendimwrite(w_i,lsb_watermark.bmp,bmp); %将嵌入水印图像写入lsb_ watermark.bmpfigure(1)imshow(w_i,)title(嵌入水印后) %显示嵌入水印后的图片figure(2)imshow(C,)title(嵌入水印前) %显示原始图片figure(3)

18、imshow(m,)title(水印图片) %显示水印图片算法分析:这里选用一幅200200像素的图像,数字水印用纯文字二值图像。MATLAB中可以用bitset()函数实现位平面置0,与嵌入数字水印数据。置0的方法是调用函数bitset(A,bit)。A表示要置0的图像,bit表示要对哪一位置0。若要对最低位置0,则可以写为:bitset(A,1)。嵌入水印的方法是:w_i(ii,jj)=bitset(w_i(ii,jj),1,w(ii,jj),w_i表示要嵌入水印的图像,1表示在最低位嵌入,2表示在第二个位平面嵌入,以此类推,w表示水印图像。 4.2.2 水印提取算法clear all;=

19、lsb_watermark.bmp;watermark_image=imread(); %读入嵌入水印图像Mw=size(watermark_image,1); %嵌入水印图像行数Nw=size(watermark_image,2); %嵌入水印图像列数=word.bmp;orig_watermark=imread(); %读入原始水印Mm=size(orig_watermark,1); %水印的行数Nm=size(orig_watermark,2); %水印的列数for ii=1:Mw for jj=1:Nw%用嵌入水印图像的最低有效位重建水印 watermark(ii,jj)=bitget

20、(watermark_image(ii,jj),1);%用bitget()函数重建水印 endendwatermark=2*double(watermark); %将提取水印变为原始水印大小for ii=1:Mm-1 for jj=1:Nm-1 watermark1(ii+1,jj+1)=watermark(ii,jj); endendwatermark1(1,1)=watermark(Mm,Nm);figure(1)subplot(1,2,1);imshow(watermark_image,)title(嵌入水印图像) %显示嵌入水印后的图片figure(2)subplot(1,2,1);i

21、mshow(watermark1,)title(提取水印) %显示原始图片figure(2)subplot(1,2,2);imshow(orig_watermark,)title(原始水印) %显示水印图片算法分析:这里选用一幅200200像素、256灰度的图像,数字水印用纯文字二值图像。MATLAB中可以用bitget()函数实现提取数字水印数据。提取水印的方法是:watermark(ii,jj)=bitget(watermark_image (ii, jj) ,1),watermark_image表示要嵌入水印的图像,1表示在最低位提取,2表示在第二个位平面提取,以此类推,最高位是8。 5

22、 MATLAB软件仿真用MATLAB软件对上述水印嵌入与提取算法源程序代码进行编译、仿真,可以得到如下仿真结果,对仿真图分析,可以得到相应的结论。5.1 仿真结果5.1.1 水印嵌入仿真水印图像如图5.1所示,是200200像素图像,256灰度图像,是颜色单一的二值文字“你好吗”图像。图5.1 水印图像图5.2 嵌入水印前 图5.3 嵌入水印后原始图像,这是一幅200200像素的彩色图像,由于LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉,看起来嵌入水印后的图像及原始图像没有区别。若改变图像的较高位信息,修改语句w

23、_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.5与图5.3,可以发现当改变图像高位信息时,可以从肉眼看出嵌入水印图像后及原始图像有细微差别(为了可以更清晰的效果,我们选用8位),因此选用低位1可以实现较高的保密性,不易被察觉,并且可以保证原始图像的特征属性,便于选择与提取。5.1.2 水印提取仿真嵌入水印后的图像如图5.6所示,由于LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的

24、信息,对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉,看起来嵌入水印后的图像及原始图像没有区别。图5.6 嵌入水印图像 图5.8 原水印图像对图像进行低位水印提取,及原水印图像(图5.8)相比较,可以发现提取的水印很模糊,但能够看得出原始水印的轮廓。5.2 仿真分析LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉。以一幅256灰度的图像(图5.2)为例,256灰度共需要8个位来表示,但其中每一个位的作用是不一样的,对比图5.5、图5.3,越高位对图像的影响越大,而越低的位影响越小,甚至不能感知。由于是在

25、最低位嵌入数字水印图像,因此嵌入前的图像与嵌入后的图像没有明显的差别,数字水印得到更好的隐藏。MATLAB程序如上,其中word.bmp是水印图像文件,color.bmp是原始图像文件,lsb_watermark.bmp是嵌入水印之后的图像文件。结 论通过本次的课程设计,理解到的水印的嵌入、提取过程,了解到水印的用处与价值,在以后的实际生活中也可以采用LSB算法实现水印的嵌入,可以有效维护图像版权或防止无权限的修改。本设计采用的是基于空域的水印实现,通过LSB算法实现起来比较简单,同时可以保证数字水印的不可见性。在实践的课程中,发现如果嵌入的位数太多,则会被人眼察觉到。但是由于数字水印位于图像

26、的不重要像素位上,因此很容易被图像过滤、量化与几何型变等操作破坏,以致无法恢复数字水印,所以通常可采用一些增强数字水印的隐蔽性的算法,如奇偶标志位隐藏算法、索引数据链隐藏算法等,从而使水印的隐蔽性更高。在水印提取过程中,需注意水印嵌入算法中的改变位,若为低位1,则在提取时应选用相同的低位1,否则提取的水印有很大的噪声,得不出及原始水印相同的图像。参考文献1 刘刚等. MATLAB数字图像处理M.机械工业出版社,2010:135-150.2 龚声蓉等.数字图像处理及分析M.清华大学出版社,2006: 269.3 葛哲学.精通MATLABM.电子工业出版社,2008: 2-8.4 张圣勤. MATLAB7.0实用教程M.机器工业出版社,2006: 90-118.5 孙仲康,沈振康.数字图像处理的应用M.国防工业出版社,2008:132-158.6 龚声蓉等.数字图像处理及分析(第二版)M.清华大学出版社.2014:2677 阮沈勇.MATLAB程序设计M.电子工业出版社,2004: 70-85.8 姚敏. 数字图像处理M.机械工业出版社,2006: 52-60.9 陈桂明.应用MATLAB语言处理数字信号及图像处理M. 科学出版社.2000: 50-65.10 赵荣椿.数字图像处理导论M.西北工业大学出版社,2003: 65-72.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com