数字图像水印matlab实现 下载本文

论文独创性声明

本人所呈交的论文,是指导教师的指导下,独立进行研究和开发工作所取得的成果。除文中已特别加以注明引用的内容外,论文中不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的工作做出重要贡献的个人和集体,均已在文中以明确方式标明并致谢。本人完全意识到本声明的法律结果由本人承担。 特此声明。

论文作者(签名): 20 年 月 日

摘 要

随着计算机网络的迅速发展,包括数字图像在内的数字媒体得到了广泛的应用,数字媒体的数据逐渐成为人们获取信息的重要来源,但随之而来出现了一系列如随意复制、编辑、非法传播数字图像的信息安全问题,数字媒体的版权保护问题变的日益突出,数字图像水印技术由此应用而生,已成为信息安全领域的一个研究热点。

本文比较系统地研究了数字水印技术在静止图像中的应用问题。首先介绍了数字水印技术的发展背景,然后对数字水印的原理、特点、分类、典型算法、应用领域以及评价标准等等进行了简要的分析。其次,本文主要是针对目前现有数字图像水印算法实现过程比较复杂,其中重点讨论关于DCT的数字图像水印技术的嵌入,提取和水印的攻击测试等。最后对数字图像水印的特征进行分析总结。最终通过Matlab这一工具来实现其具体的过程。通过实验对比分析得到该种算法具有一定的可行性以及较好的鲁棒性。

关键词:数字图像水印,信息安全,DCT算法,Matlab.

1

Abstract

With the rapid development of computer network, digital media, including digital image has been widely used, digital media data gradually become an important source of obtaining information, but there's a series of such as free to copy, edit, illegal dissemination of digital image information security, copyright protection of digital media has become increasingly outstanding, digital image watermarking technology and the application, has become a research hotspot in the field of information security.

This paper systematically studies the problems of the application of digital watermarking in still images. It first introduces the development background of digital watermarking, then the principle, characteristics, classification, application of digital watermarking field of typical algorithms, as well as the evaluation criteria and so on were analyzed briefly.Secondly, this paper is mainly aimed at the existing digital image watermarking algorithm is a complicated process, which focused on the digital image watermarking technology about DCT embedding, extraction, as well as the watermark attack test etc.. Finally on the digital image watermarking characteristics were analyzed and summarized. Finally through the tool of Matlab to realize the specific process. Through comparative analysis of the experiment of the algorithm is feasible,and better robustness.

Key words: Digital image watermarking, Information security, DCT algorithm, Matlab.

2

目 录

1 绪论 ........................................................................................................................................................... 1 2 数字图像水印技术 ............................................................................................................................ 3 2.1数字图像水印技术的历史及国内外发展现状 ................................................................... 3 2.2数字图像水印的分类和基本特征 ........................................................................................... 6 2.3数字图像水印的一般模型 ......................................................................................................... 7 2.4数字图像水印的常见算法 ......................................................................................................... 8 2.5数字图像水印技术的应用 ....................................................................................................... 11 3 MATLAB简介 ........................................................................................................................................ 14 3.1 MATLAB简介 ................................................................................................................................ 14 3.2 MATLAB在数字图像水印中的应用 ..................................................................................... 14 3.2.1数字图像水印技术 ............................................................................................................. 15 3.2.2图像分析处理 ....................................................................................................................... 15 3.3 在数字图像水印实现中主要函数 ....................................................................................... 16 3.3.1图像显示,读取和输出 ...................................................................................................... 16 3.3.2变换频函数 ........................................................................................................................... 16 3.3.3攻击函数 ................................................................................................................................ 16 3.3.4比较两图像相似度函数 ................................................................................................... 17 4 数字图像水印攻击分析和评价标准 ..................................................................................... 18 4.1 影响性能的因素 ........................................................................................................................ 18 4.2 数字图像水印的常见攻击 ..................................................................................................... 18

I

5 数字图像水印的设计 .................................................................................................................... 21 5.1 离散余弦叶变换 ........................................................................................................................ 21 5.2 离散余弦变换水印嵌入算法及其框图 ............................................................................. 23 5.3 离散余弦变换水印提取算法及其框图 ............................................................................. 25 5.4 水印的攻击测试程序与结果 ................................................................................................ 28 5.4.1不同噪声攻击测试 ............................................................................................................. 28 5.4.2 JPEG压缩攻击测试 ........................................................................................................... 30 5.4.3 高斯低通滤波攻击 ............................................................................................................ 31 5.4.4 其他攻击测试 ...................................................................................................................... 31 5.5实验结果分析 ............................................................................................................................... 33 致 谢 ........................................................................................................................................................ 38 参考文献 .................................................................................................................................................... 39 附 录 ........................................................................................................................................................ 40

II

1 绪论

随着Internet的普及,信息媒体的数字化为信息的存取提供了极大的便利性,同时也显著提高了信息表达的效率和准确性;数据的交换和传输变成了一个相对简单的过程,人们借助于计算机、数字扫描仪、打印机等电子设备可以方便、迅速地将数字信息传输到任何地方。在此情况下,这些数字形式的数据文件或作品使另有意图的个人和团体有可能在没有得到作品所有者的许可下复制和传播有版权的信息,例如,现代盗版者仅需轻点几下鼠标就可以获得与原版一样的复制品,并以此获取暴利;而一些具有特殊意义的信息,如涉及司法诉讼、政府机要等信息,则会遭到恶意攻击和篡改伪造等等。这一系列数字化技术本身的可复制和广泛传播的特性所带来的负面效应,已成为信息产业健康持续发展的一大障碍,因此有关信息的安全保护问题也越来越备受我们的关注。如何有效地防止数据的非法复制以及鉴别数字媒体的知识产权,成为亟待解决的问题。Caronni在1993年提出了数字水印,并将其应用于数字图像。数字水印技术提出虽然时间不长,但是由于其在信息安全和经济上的重要地位,发展状况较为迅速,世界各国的科研机构、大学和商业集团都积极参与或投资支持此方面的研究。后来将数字水印的概念扩展到电视图像等相关领域,数字水印技术因此成为一种版权保护的重要手段,得到了广泛的研究和应用[1]。

数字图像水印技术是将一些标识信息(即数字图像水印)直接嵌入数字载体当中,例如包括多媒体、文档、软件等,但不影响原载体的使用价值以及外在的特性,也不容易被人的知觉系统,如视觉或者听觉系统觉察到。我们可以通过这些隐藏在载体中的信息,可以确认内容真正创建者、购买者、传送隐秘信息以及判断载体是否被篡改等相关问题。数字图像水印是信息隐藏技术的重要研究方向之一。从信号处理的角度看,既是在载体图像中嵌入数字水印,可以看着为在强背景(即原始公开图像)下叠加一个视觉上看不到的微弱信号(即水印图像),由于人的视觉系统(Human Visual

1

System,HVS)[1]分辨率受到一定的限制,只要保证叠加信号的幅度小于HVS的对比度门限,HVS就感觉不到信号的存在,因此,通过对载体对象作一定的调整变换,就有可能在不引起人感知的情况下嵌入一些信息。

本论文中首先介绍了有关数字图像水印的发展背景以及其应用,其次介绍了实现数字图像水印技术的工具Matlab,最后就是针对数字图像水印的设计,以及进行一定的对比分析。

在本设计中主要研究的是使用Matlab工具来实现数字图像水印的研究,主要包括数字图像水印的嵌入,提取,以及数字图像水印的攻击测试。具体来说,就是在在原始图像上通过一定的处理,在其中加入一个视觉上看不到的图像水印来实现知识产权的保护以及确认信息的是否合法,对不合法攻击的防护能力等。

2

2 数字图像水印技术

2.1 数字图像水印技术的历史及国内外发展现状

一般认为,数字水印起源于古老的水印技术。这里提到的“水印”技术是指传统水印,即印在传统载体上的水印,如纸币上的水印、邮票股票上的水印等,将它们对着光照我们可以看到其中隐藏的图像。这些传统的“水印”用来证明其内容的合法性。大约700年前,纸水印便在意大利的Fabriano镇出现,这些纸水印是通过在纸模中加细线模板制造出来的。纸在存在细线的区域会略微薄一些,这样也会更透明一些。到了18世纪,在欧洲和美国制造的产品中,纸水印已经变得相当的实用了。水印被用作商标,记录纸张的生产日期,显示原始纸片的尺寸。大约也是这个时期,水印开始用于钱和其它文件的防伪措施。纸水印的存在既不影响美感,也不影响纸张的使用。中国是世界上最早发明造纸术的国家,也是最早使用纸币的国家。宋真宗在位时(公元998-1021年),四川民间发明了“交子”。交子正面都有票人的印记,有密码画押,票面金额在使用时填写,可以兑换,也可以流通。可以说交子上的印文既包含水印技术也包含消隐技术。

数字水印技术自1993年被提出以来,由于其在信息安全和经济上的重要地位,发展较为迅速,世界各国的科研机构、大学和商业集团都积极的参与或投资支持此方面的研究。如美国财政部、美国版权工作组、美国洛斯阿莫斯国家实验室、美国海陆空研究实验室、欧洲电信联盟、德国国家信息技术研究中心、日本NTT信息与通信系统研究中心、麻省理工学院、南加利福尼亚大学、剑桥大学、瑞士洛桑联邦工学院、微软公司、朗讯贝尔实验室等都在进行这方面的研究工作。IBM公司、日立公司、NEC公司、Pioneer电子公司和Sony公司等五家公司还宣布联合研究基于信息隐藏的电子水印。

3

国际学术界陆续发表了许多关于数字水印技术方面的文章,几个有影响的国际会议(例如IEEE,SPIE等)及一些国际权威学术期刊(例如Signal Processing等)相继出版了有关数字水印技术的专题。1996年5月,国际第一届信息隐藏学术讨论会(International Information Hiding Workshop, IHW)在英国剑桥牛顿研究所召开,至今该研讨会已举办了五届。在1999年第三届信息隐藏国际学术研讨会上,数字水印成为主旋律,全部33篇文章中有18篇是关于数字水印的研究。1998年的国际图像处理大会(ICIP)上,还开辟了两个关于数字水印的专题讨论。由Martin Kutter创建的WatermarkingWorld已成为一个关于数字水印的著名网上论坛。

在20世纪90年代末期一些公司开始正式地销售水印产品。在图像水印方面,美国的Digimarc公司率先推出了第一个商用数字水印软件,而后又以插件形式将该软件集成到Adobe公司的Photoshop和Corel Draw图像处理软件中。该公司还推出了媒体桥(Mediabridge)技术,利用这项技术用户只要将含有Digimarc水印信息的图片放在网络摄像机(web camera)前,媒体桥技术就可以直接将用户带到与图像内容相关联的网络站点。AlpVision公司推出的LavelIt软件,能够在任何扫描的图片中隐藏若干字符,这些字符标记可以作为原始文件出处的证明,也就是说,任何电子图片,无论是用于Word文档、出版物,还是电子邮件或者网页,都可以借助于隐藏的标记知道它的原始出处。AlpVision的SafePaper是专为打印文档设计的安全产品,它将水印信息隐藏到纸的背面,以此来证明该文档的真伪。SafePaper可用于证明一份文件是否为指定的公司或组织所打印,如医疗处方、法律文书、契约等,还可以将一些重要或秘密的信息,如商标、专利、名字、金额等,隐藏到数字水印中。欧洲电子产业界和有关大学协作开发了采用数字水印技术来监视复制音像软件的监视系统,以防止数字广播业者的不正当复制的行为。该开发计划名称为《TALISMAN(Tracing Authors Rights by Labeling Image Service and Monitoring Access Networks)》。此开发计划作为

4

欧洲电子产业界等组织的欧共体项目于1995年9月开始进行,1998年8月结束,法国、比利时、德国、西班牙、意大利和瑞士等在内的11个通信与广播业者、研究单位和大学参加。

随着技术信息交流的加快和水印技术的迅速发展,国内一些研究单位也已逐步从技术跟踪转向深入系统研究,各大研究所和高校纷纷投入数字水印的研究,其中比较有代表性的有哈尔滨工业大学的孙圣和、牛夏牧、陆哲明等,天津大学的张春田、苏育挺等,北京邮电大学的杨义先、钮心忻等,中国科学院自动化研究所的刘瑞祯、谭铁牛等,他们是国内较早投入水印技术研究且取得较好成绩的科研单位。我国于1999年12月11日,由北京电子技术应用研究所组织,召开了第一届信息隐藏学术研讨会(CIHW),至今已成功的举办了四届,很大程度地推进了国内水印技术的研究与发展。同时,国家对信息安全产业的健康发展也非常的重视,在2003年的《科技型中小企业技术创新基金若干重点项目指南》中,明确指出了对于“数字产品产权保护(基于数字水印、信息隐藏、或者网络认证等先进技术)”和“个性化产品(证件)的防伪(基于水印、编码、或挑战应答等技术)”等多项防盗版和防伪技术予以重点支持。现在国内已经出现了一些生产水印产品的公司,其中比较有代表性的是由中科院自动化研究所的刘瑞祯、谭铁牛等人于2002年在上海创办了的一家专门从事数字水印、多媒体信息和网络安全、防伪技术等软硬件开发的公司——上海阿须数码技术有限公司,公司现从事数字证件、数字印章、PDF文本、分块离散图像、视频、网络安全等多方面数字水印技术的研究,现在这家公司已申请了一项国际和三项国家数字水印技术专利。虽然数字水印在国内的应用还处于初级阶段,但水印公司的创办使得数字水印技术在国内不仅仅只停留在理论研究的层面上,而是从此走上了实用化和商业化的道路,这样会更加推动国内水印技术的蓬勃发展,为国内的信息安全产业提供有效的、安全的保障[2]。

5

2.2 数字图像水印的分类和基本特征

数字图像水印的分类从不同的角度上有着不同的划分。主要分为:

(1)从外观上分类,可分为可见水印和不可见水印。可见水印是在载体可以看见的水印,与可视的纸张水印相似。不可见水印是目前应用比较广泛的水印,它加在图像中,表面是很难察觉的,但当需要验证时,可以从中提取标记来证明所有者。

(2)按鲁棒性来分,可分为易脆水印和鲁棒水印。所谓易脆水印即认证水印就是在保证数字媒体信息一定视、听觉质量的前提下,将与媒体内容相关或不相关的标志信息作为水印直接嵌入媒体内容中,当媒体内容需认证时,可将水印提出鉴定其是否真实完整。鲁棒水印保证了当数字信息收到有意或者无意的处理或者攻击时,仍能够通过检测提取到确认版权的水印信息。

(3)按水印检测过程,可以分为盲水印、半盲水印和非盲水印。非盲水印是在检测过程中需要原始数据和原始水印的参与;半盲水印是不需要原始数据,但是需要原始水印进行检测:盲水印是不需要原始数掘与不要原始水印,只是需要密钥来检测。

一般认为数字图像水印应具有如下基本特征:

(1)不可见性。透明性,是利用人类视觉和听觉的特性,即指因嵌入水印导致载体数据的变换对于观察者的视觉系统来讲是不可察觉的,最理想的情况是水印与原始载体在视觉上是一模一样的,这是绝大多数水印算法所应达到的要求。经过隐藏处理,使带水印的作品与原先的作品在品质上没有明显的差异,不影响其欣赏性,也不影响其视觉效果。。

(2)鲁棒性。数字水印必须很难去掉,当然在理论上任何水印都可以去掉,只要对水印的嵌入过程有足够的了解,但是如果对水印的嵌入只是部分了解的话,任何破坏或消除水印的企图都应导致载体严重的降质而不可用。

(3)安全性。数字水印应该能够抵抗各种蓄意的攻击,同时应很难被他人复制

6

和伪造。

(4)有效性。水印提取算法应高效,提取出的水印应能唯一标识版权所有者。 (5) 抗窜改性。 与抗毁坏的鲁棒性不同,抗窜改性是指水印一旦嵌入到载体中,攻击者就很难改变或伪造。鲁棒性要求高的应用,通常也需要很强的抗窜改性,在版权保护中,要达到好的抗窜改性是比较困难的。

2.3 数字图像水印的一般模型

数字水印的一般模型如图2-1所示:

水印信息嵌入过程原始图像含水印信号

图2-1 数字水印嵌入过程

频域法加入数字水印的原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用的变换一般有DWT、DCT、DFT、WP和分形。然后,对加入了水印信息的信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息的信号。

7

原始信号抽检过程抽取水印结束待检信号结束有无水印水印信息

图2-2 数字水印检测/抽取过程

如上图2-2所示,频域法检测水印的原理是将原始信号与待检测信号同时进行变换域变换,比较两者的区别,进行嵌入水印的逆运算,得出水印信息。如果是可读的水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出的水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印的检测有两个结束点。

2.4 数字图像水印的常见算法

近几年来数字水印技术研究取得了很大的进步,见诸于文献的水印算法很多,这里对一些典型的算法进行了分析。

(1)数字水印直接加载在原始数据上,还可以细分为如下几种方法: 最低有效位方法(LSB)

这是一种典型的空间域数据隐藏算法,L.F.Tumer与R.G.VanSchyadel等先后利用此方法将特定的标记隐藏于数字音频和数字图像内。该方法是利用原始数据的最低几位来隐藏信息(具体取多少位,以人的听觉或视觉系统无法察觉为原则)。LSB方法的优点是有较大的信息隐藏量,但采用此方法实现的数字水印是很脆弱的,无法经受一些无损和有损的信息处理,而且如果确切地知道水印隐藏在几位LSB中,数字水印

8

很容易被擦除或绕过[2]。

Patchwork方法及纹理块映射编码方法

这两种方法都是Bender等提出的。Patchwork是一种基于统计的数字水印,其嵌入方法是任意选择N对图像点,在增加一点亮度的同时,降低另一点的亮度值。该算法的隐藏性较好,并且对有损的JPEG和滤波!压缩和扭转等操作具有抵抗能力,但仅适用于具有大量任意纹理区域的图像,而且不能完全自动完成。

(2) 变换域算法

基于变换域的技术可以嵌入大量比特数据而不会导致可察觉的缺陷,往往采用类似扩频图像的技术来隐藏数字水印信息。这类技术一般基于常用的图像变换,基于局部或是全部的变换,这些变换包括离散余弦变换(DCT)、小波变换(WT)、傅氏变换(FT或FFT)以及哈达马变换(Hadamardtransform)等等。其中基于分块的DCT是最常用的变换之一,现在所采用的静止图像压缩标准JPEG也是基于分块DCT的。最早的基于分块DCT的一种数字水印技术方案是由一个密钥随机地选择图像的一些分块,在频域的中频上稍稍改变一个三元组以隐藏二进制序列信息。选择在中频分量编码是因为在高频编码易于被各种信号处理方法所破坏,而在低频编码则由于人的视觉对低频分量很敏感,对低频分量的改变易于被察觉。该数字水印算法对有损压缩和低通滤波是稳健的。另一种DCT数字水印算法是首先把图像分成8×8的不重叠像素块,在经过分块DCT变换后,即得到由DCT系数组成的频率块,然后随机选取一些频率块,将水印信号嵌入到由密钥控制选择的一些DCT系数中。该算法是通过对选定的DCT系数进行微小变换以满足特定的关系,以此来表示一个比特的信息。在水印信息提取时,则选取相同的DCT系数,并根据系数之间的关系抽取比特信息。除了上述有代表性的变换域算法外,还有一些变换域数字水印方法,它们当中有相当一部分都是上述算法的改进及发展,这其中有代表性的算法是I.Podichuk和ZengWenjun提出的算法。他们的

9

方法是基于静止图像的DCT变换或小波变换,研究视觉模型模块返回数字水印应加载在何处及每处可承受的JND(JustNoticeableDifference,恰好可察觉差别)的量值(加载数字水印的强度上限),这种水印算法是自适应的[3]。

(3)压缩域算法

基于JPEG、MPEG标准的压缩域数字水印系统不仅节省了大量的完全解码和重新编码过程,而且在数字电视广播及VOD(Video on Demand)中有很大的实用价值。相应地,水印检测与提取也可直接在压缩域数据中进行。下面介绍一种针对MPEG-2压缩视频数据流的数字水印方案。虽然MPEG-2数据流语法允许把用户数据加到数据流中,但是这种方案并不适合数字水印技术,因为用户数据可以简单地从数据流中去掉,同时,在MPEG-2编码视频数据流中增加用户数据会加大位率,使之不适于固定带宽的应用,所以关键是如何把水印信号加到数据信号中,即加入到表示视频帧的数据流中。对于输入的MPEG-2数据流而言,它可分为数据头信息、运动向量(用于运动补偿)和DCT编码信号块3部分,在方案中只有MPEG-2数据流最后一部分数据被改变,其原理是,首先对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,以得到当前数据块的一个DCT系数;其次,把相应水印信号块的变换系数与之相加,从而得到水印叠加的DCT系数,再重新进行量化和Huffman编码,最后对新的Huffman码字的位数n1与原来的无水印系数的码字n0进行比较,只在n1不大于n0的时候,才能传输水印码字,否则传输原码字,这就保证了不增加视频数据流位率。该方法有一个问题值得考虑,即水印信号的引入是一种引起降质的误差信号,而基于运动补偿的编码方案会将一个误差扩散和累积起来,为解决此问题,该算法采取了漂移补偿的方案来抵消因水印信号的引入所引起的视觉变形[4]。

(4)NEC算法

由NEC实验室的Cox等人提出其实现方法是首先以密钥为种子来产生伪随机序

10

列,该序列具有高斯N(0,1)分布,密钥一般由作者的标识码和图像的哈希值组成,其次对图像做DCT变换,最后用伪随机高斯序列来调制(叠加)该图像除直流(DC)分量外的1000个最大的DCT系数b5。该算法具有较强的鲁棒性、安全性、透明性等。由于采用特殊的密钥因此可防止IBM攻击,而且该算法还提出了增强水印鲁棒性和抗攻击算法的重要原则即水印信号应该嵌入源数据中对入感觉最重要的部分:水印信号由独立同分布随机实数序列构成,该实数序列应该具有高斯分布N(O,1)分布的特征[5]。

2.5 数字图像水印技术的应用

数字水印技术是刚刚兴起的一门数字信息安全的新技术,但是由于它具备的特殊优势和特性,自它被提出之后,就受到广大专家学者的认可,它的应用前景和应用领域非常巨大,总的来说,主要应用领域有:

(1)版权保护:目前版权保护可能是水印最主要的应用领域。数字作品的所有者用密钥产生一个水印,并将其嵌入原始数据,然后公开发布他的水印版本作品。当该作品被盗版或出现版权纠纷时,所有者可利用从盗版作品或水印作品中获取水印信号作为依掘,从而保护所有者的权益。这要求水印必须具有较好的鲁棒性、安全性、透明性和水印嵌入的不可逆性[6]。

(2)票据防伪:随着高质量图像输入输出设备的发展,特别是精度超过1200dpi的彩色喷墨、激光打印机和高精度彩色复印机的出现,使得纸币、支票以及其它票据的伪造变得更加容易。目自订,美国、日本以及荷兰都在研究用于票据防伪的数字水印技术,其中麻省理工学院媒体实验室受美国财政部委托,己经开始研究在彩色打印机和复印机输出的每幅图像中加入唯一的、不可见的水印,需要时可以实时地从扫捕票据中判断水印的有无,快速辨识伪。另一方面,在从传统商务向电子商务转化的过程中会出现大量过度性的电子文件,如各种纸质票据的扫描图像,网络安全技术成熟

11

以后的各种电子票据等都需要进行非密码认证,数字水印技术可以为各种票据提供不可见的标志,从而大大增加了伪造的难度。

(3)内容认证:通过使用那些很难被检测到的方法,使得篡改数字作品变得越来越容易。内容认证的目的就是检测对数字作品的修改,可用脆弱水印来实现认证。可以简单的认为脆弱水印是一种当作品发生任何形式的改变后变得不可测的标志。如果从作品中检测到一个非常脆弱的水印,那么说明作品没有被修改,至少没有被意外地修改。该类水印还可以对数字作品被篡改的地方进行定位,甚至有的算法还能够将被篡改的内容进行部分恢复或全部还原[6]。

(4)标题与注释:数据的标识信息有时比数掘本身更具有价值,如遥感图像的拍摄日期、经纬度等。没有标识信息的数据有时甚至无法使用,但直接将这些重要信息标记在原始文件上又很危险。将作品的标题、注释等内容以水印形式嵌入该作品中,于是标识信息在原始文件上是看不到的,只有通过特殊的阅读程序可以读取。

(5)盗版跟踪:数字水印还有一些其他的应用,他们的目的是传输合法接受者的信息而不是数据来源者的信息,主要用于识别数据的单个发行拷贝,这一类应用在发行的每个拷贝中嵌入不同的水印,通常称之为“数字指纹”,对每个拷贝各自嵌入水印的情况,因为他们的发行要面临共谋攻击的危险,所以嵌入的水印应陔设计成对共谋攻击而言是安全的,同样,对于某些数字指纹来说,他们要求水印易于提取,且有很低的复杂度[7]。

(6)拷贝保护:在多媒体发行体系中,希望存在这样的一个拷贝保护机制,即它不允许未经授权的媒体拷贝,在开放系统中很难实现拷贝保护,然而在封闭或私有系统中,拷贝保护是可行的,在这样的系统中,可用水印来说明数据的拷贝情况。

(7)安全的隐秘通信:情报战是信息战的重要组成部分,其核心思想是利用公用网络进行保密数据传送,目前采用的方式主要是“文件加密”,然而经过加密的文

12

件往往是混乱无序的,容易引起攻击者的注意。网络多媒体技术的广泛应用使得利用公用网络进行保密通信有了新的思路,即利用数字水印技术把需要传递的秘密信息作为水印嵌入到可以公开的数字产品的时(空)域和变换域中,从而实现隐蔽通信。由于嵌入秘密信息的图像在主观视觉上并未发生变化,察觉到秘密信息的存在是不大可能的。从这个意义上讲,传输秘密信息的信道也是秘密的。这将有效地减少遭受攻击的可能性。同时,由于信息的嵌入方法是保密的,如果再结合密码学的方法,即使敌方知道秘密信息的存在,要提取和破译该信息也是十分困难的[8]。

13

3 MATLAB简介

3.1 MATLAB简介

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple、MathCAD并称为四大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用[9]。

3.2 MATLAB在数字图像水印中的应用

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供

14

的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。

3.2.1数字图像水印技术

(1)集成了DFT、DCT、DWT等函数有丰富的小波函数和处理函数,这不仅方便了研究人员,而且使源程序简洁明了、易于实现。

(2)强大的数学运算功能。能够方便、高效地实现音频、视频中的大量矩阵运算。提供了图像处理工具箱、小波分析工具箱、数字信号处理工具箱。

(3)用来编制跨数字图像处理技术、数字信号处理等学科的数字水印技术是非常好的选择。MATLAB与目前最强大的编程工具——Visual C++具有良好的接口。

3.2.2图像分析处理

Matlab的ImageProcessingToolbox提供了大量用于图像处理的工具函数,利用这些函数,可以分析图像数据,获取图像细节信息,并且设计相应的滤波算法,滤出图像数据所包含的噪声。当然,滤波器的设计是通过Matlab产品提供的交互式工具完成的,这些工具还能够完成选取图像区域,测量图像误差和获取、统计像素信息等功能。

图象处理工具箱还提供了Radon变换来重够图像,而离散余弦变换可以作为实现新的压缩算法的核心。工具箱中还包含了边缘检测算法,用于表示图像中具体物体的边缘等。

在图象处理工具箱还包含了众多数学形态学函数,这些函数可以用于处理灰度图像或二值图像,可以快速实现边缘检测、图像去噪、骨架抽取等算法。此外还包含一些专用的数学形态学函数,例如填充处理、峰值检测等[10]。

15

3.3 在数字图像水印实现中主要函数

在介绍函数之前,我们必须明确一点:作水印程序时,处理的图像数据是二维信号,而声音信号是一维信号。这里,我们仅仅简单介绍与水印有关的函数,具体函数的用法请读者参考相关文献。

3.3.1图像显示,读取和输出

imshow( ):显示一幅图像; imread ( ):读取一副图像; imwrite( ): 输出一副图像; 3.3.2变换频函数

对信号采用不同的变换,是实现频域法水印的至关重要的一步,MATLAB中对二维信号分别提供了各种变换和逆变换函数。

离散余弦变换(DCT)

dct2( ):实现二维信号的DCT(离散余弦变换); idct2( ):实现二维信号的IDCT(逆向离散余弦变换); 3.3.3攻击函数

对算法进行攻击测试是对水印鲁棒性检测的一种重要手段,一个好的水印算法必须经过各种攻击测试才能对之做出客观的评价。MATLAB中的许多函数可以直接用来做的攻击测试。

(1) 旋转:imrotate( )可以对图像进行任意角度的旋转; (2) 滤波:filter2( )可实现对二维信号的滤波;

16

(3) 压缩:imwrite( )中jpg和quality参数能对图像进行可控jpg压缩; (4) 加各种噪声:imnoise( )可以对图像加入各种噪声,如白噪声、椒盐噪声等,加入噪声是对水印鲁棒性考验的一种常见的攻击;

(5) 放大/缩小:imresize( )可以以指定的插值方法来对图像进行放大和缩小。 3.3.4比较两图像相似度函数

PSNR :峰值信噪比,一种评价图像的客观标准。PSNR值越大,就代表失真越少。但具有一定的局限性。许多实验表明,PSNR的分数无法和人眼看到的视觉品质完全一致,有可能PSNR较高者看起来反而比PSNR较低者差[11]。

NC: 归一化的相关系数,其值越大越好,最大为1。

SSIM: 一种衡量两幅图像相似度的新指标,其值越大越好,最大为1。但也具有一定的局限性,对于图像的噪声与去噪处理中图像相似度评价中性能最好。

17

4 数字图像水印攻击分析和评价标准

4.1 影响性能的因素

在实际应用中,含水印的图像常常会受到各种形式的攻击。因此对遭受攻击的图像进行检测,从中提取水印和原始水印做比较,从而可以得知图像的破坏程度。更深入了解和发现现有水印技术的弱点,对水印攻击进行综合研究,促进水印技术的发展。

(1)嵌入的信息量

这是一个重要的参数,它是直接影响水印的稳健性。对于同一种水印方法来说,要嵌入的信息量越多,则水印的稳健性就越差。

(2)水印嵌入强度

水印嵌入强度和水印可见性之间存在着一个折衷。一般而言,增强稳健性就要增加水印嵌入强度,相应地也会增加水印的可见性。

(3)图像的尺寸和特性

图像的尺寸和特性对嵌入水印的稳健性有直接和重要的影响。图像尺寸大,则可嵌入的信息量就大。除了图像的尺寸之外,图像的特点对稳健性有重要的影响,如图像的纹理特性,纹理越复杂,背景越强,则可嵌入的水印强度也越大。

(4)密钥

虽然密钥的数量不直接影响到水印的可见性和稳健性,但它对系统的安全性起了重要的作用。水印算法中,密钥的取值范围必须足够大,以使穷举攻击法失效。

4.2 数字图像水印的常见攻击

目前,水印攻击的种类十分繁多,可以大致分为四类:水印移去攻击、几何变形攻击、密码攻击和协议攻击。

18

(1)水印移去攻击

水印移去攻击Ⅲ的主要目的是在没有破坏水印算法的安全性的前提下(即在没有水印加密密钥的前提下),从加水印数据中完全移去水印信息,所谓完全移去就是没有办法可以从被攻击的数据中恢复水印信息。水印移去攻击中最简单的就是“基本攻击”,它是所有可能的攻击中最普通的一种,成熟的水印移去攻击方法包括:去噪、量化(或压缩)、再调制和碰撞攻击等。并不是所有的这些方法总是能够完全地擦除水印信息。但是,它们可以显著地破坏水印信息。传统的水印移去攻击在保持受攻击数据的质量足够高的前提下,企图利用加噪或量化等方法来尽最大可能地破坏己经加入的水印信息。通常,采用水印和原始数据的统计模型,以达到最优处理。串谋攻击,有两种情况。一种情况,对手得到含有相同水印的多件不同作品,通过对其进行研究,得知算法的原理。比如,若所有的作品均被添加了相同的参考模式,对这些作品做平均后会得到近似的模式。将平均后所得到的模式从作品中减去,即可去除水印。另一种情况,对手获得相同作品的数件拷贝,每件拷贝嵌有不同的水印。对手通过结合不同的拷贝得到一个同原始作品极为接近的版本,最简单的结合方式是对几份拷贝做平均,这样将不同的印记混同以减小其幅度,达到去除水印的目的[11]。 (2)几何变形攻击

与水印移去攻击相反,几何变形攻击?并不是移去水印信息,而是在空间和时间上有意改变水印图像信息。这种攻击方法往往会破坏水印检测器的同步使得水印嵌入和水印检测位置发生偏离,这样即使水印存在也无法检测到。简单的几何变形攻击有:如平移、旋转、缩放、剪切,去除某些行、或点,裁剪,插值,抖动等。目前用的著名的两种攻击工具是Stirmark和Unzign。Stirmark除了可以对图像作全局几何变换外,还引入了局部的扭曲。Unzign引入图像的局部像素抖动,这种攻击方法对于空域水印的攻击非常有效。

19

(3)密码学攻击

密码学攻击有些类似于密码学上的密码破译,但又具有其自身的特性。密码学攻击目的在于:破坏水印方案中的秘密算法并且由此发现去除已嵌入水印信息或嵌入令人误解的水印信息的方法。穷搜索方法,它利用水印算法中用作产生水印信号的密钥长度,当密钥长度不够长的时候,可以利用穷搜索来找到正确的密钥,从而破坏水印;Oracle攻击可以在检测时产生一幅不含水印的图像;统计平均攻击,它利用不同的密钥及所对应的不同的水印建立一个数据集合,计算出其平均值作为攻击数据,如果这个集合足够大,则会导致水印无法被检测到。 (4)协议攻击

协议攻击也又称为IBM攻击,协议攻击的目的不是破坏水印信号,也不是通过全局或局部的数掘处理使得水印信号无法被检测,而是设法将一幅图像中的水印“拷贝”到另一幅图像中,从而使版权保护中标识身份水印失信。其原理为设原始图像为工,加入水印WA的图像为IA=I+WA。攻击者首先生成自己的水印WF,然后创建一个伪造的原图1F=IA—WF,也即IA=IF+WF。这就产生无法分辨与解释的情况。Craver等人首先提出协议攻击的概念,他们引入可逆水印的概念,指出,对于版权保护来说,其水印必须是不可逆的,也就是说,对于非可逆水印来说应该是不可能从含有非可逆水印图像中恢复出来的。总之,水印攻击的方法各式各样,而且在实际应用中,攻击者不会仅仅使用一种攻击方法,往往会结合多种攻击方法进行攻击,这就对水印算法提出了更高的要求。因而,了解这些攻击方法将会有助于我们研究出具有更强抵抗攻击能力的数字水印算法[12]。

20

5 数字图像水印的设计

5.1 离散余弦变换

(1)DCT 变换公式

因为DCT 变换公式是这一算法的核心,有必要先了解一下DCT 正反变换公式。DCT 正反变换公式的核心是余弦变换,计算速度比较快,因图像处理所用的是二维变换,这里只给出二维的DCT 正反变换公式,二维DCT 正变换公式为:

M?1N?1?(2x?1)?(2y?1) F(?,?)?c(u)c(v)??f(x,y)cos (5-1) cos2M2Nx?0y?0?=0,1, ? ? ?, M-1;?=0,1, ? ? ?, N-1 其中:

?? c(u)?????? c(v)????12MM

u?0u?1,2???M?1v?0v?1,2???N?1 (5-2)

12NN (5-3)

二维DCT反变换公式为:

f(x,y)???c(u)c(v)F(u,v)cosM?1N?1?(2x?1)u2Mu?0v?0x?0,1???M?1;y?0,1???N?1

cos?(2y?1)v2N (5-4)

其中x,y 为空间采样值,u,v 为频域采样值。

因为数字图像多用像素方阵来标识,即M=N,此时,二维DCT 正反变换可以简化为:

F(?,?)?c(u)c(v)?x?0N?1N?12N2Nu?0,1???N?1;v?0,1???N?1

y?0?f(x,y)cos?(2x?1)cos?(2y?1) (5-5)

21

f(x,y)???c(u)c(v)F(u,v)cosu?0v?0N?1N?1?(2x?1)u2Nx?0,1???N?1;y?0,1???N?1

cos?(2y?1)v2N (5-6)

(2)二维DCT的性质

离散余弦变换是图像处理技术中几种最基本的酉变换之一。其变化是线性变化的一种特殊形式,其基本线性运算式是严格可逆的,并且满足一定的正交条件。图像的变换可以被理解为分解图像数据为广义的二维频谱,变换域中每一分量对应于原图频谱函数的能量。

设IM′N 为M′N 的图像矩阵则该图像的二维DCT 变换可由下式表示: FDCT=

其中

2M?NAM?MIM?NBN?N (5-7)

?1,m?0时??2(5-8) Am,i?? 其中0?m,i?M ?cos?m(2i?1),其他?2M?

?1,n?0时??2 Bk,n??,其中0?n,k?N (5-9)?cos?n(2k?1),其他?2N?经过二维DCT 变换得到的DCT 系数矩阵GDCT 指示了一系列频率中每一个频率所对应的变化程度,即频率的高低。其中低频分量将集中在矩阵的左上角,高频分量则集中在右下角。图像的低频分量反映图像慢变化,即图像整体部分;图像的高频分量代表图像跳变的地方,即图像细节部分,如轮廓、边缘。根据人类视觉系统,图像整体比细节部分更为重要,若一幅图像经过处理后而视觉改变不大,则其低频分量必定改变程度不大。此算法采用了将数字水印的灰度值植入DCT 域的低频分量中的方法[12]。

22

二维离散余弦变换是一种严格可逆的酉变换。它的两个矩阵AM′M BN′N 满足以下的正交条件:

AA?TMNI BTB?I (5-10) 22由此,易得到离散余弦逆变换(IDCT): IM?N?2M?NTTAM(5-11) ?N?GDCT?BN?N

正因为DCT 是一种严格可逆的正交变换,才可能对基于DCT 的植入算法实现准确的数字水印滤波。

5.2 离散余弦变换水印嵌入算法及其框图

数字图像水印算法选择二值化灰度图像作为水印信息,根据水印图像的二值性选择不同的嵌入系数,并将载体图像进行8×8的分块,将数字水印的灰度值直接植入到载体灰度图像的DCT变换域中,实现水印的嵌入。具体方法如下:

实现水印的嵌入,具体方法如下:

(1)读取原始图像和黑白水印图像到二维数组M与N;

(2) 将原始图像M分割为互不覆盖的图像块block(x,y),1

(3)取黑白水印图像中的一个元素W(p,q)嵌入原始图像块的低频系数中; (4)对嵌入水印信息后的图像块block_dct(x,y)进行逆DCT变换; (5)合并图像块,得到嵌入黑白水印后的图像。如图5-1所示:

23

原始图像水印图像8*8dct变换8*8dct变换水印嵌入Dct逆变换嵌入水印图像 图5-1 离散余弦变换水印嵌入算法

clear all;

M =512;%原图像长度 N =64;%水印图像长度 K =8;%图像分块大小

I=zeros(M,M);J=zeros(N,N);BLOCK=zeros(K,K);%矩阵 subplot(2,2,1);

I=imread('D:\\matlab\\work\\original image.jpg','jpg');imshow(I);title('原始图像'); subplot(2,2,2);

J=imread('D:\\matlab\\work\\original watermark.jpg');imshow(J);title ('水印图像'); %水印嵌入

for p=1:N %水印图像行循环

24

for q=1:N

x=(p-1)*K+1; %x为载体图像行坐标 y=(q-1)*K+1;

BLOCK =I(x:x+K-1,y:y+K-1); %BLOCK为载体图像I的分块,大小为K*K BLOCK=dct2(BLOCK); %对BLOCK进行二维DCT变换

if J(p,q)==0 %如果水印图像的第(p,q)个像素为0

a=-1;%嵌入参数

else a=1;

end

BLOCK(1,1)=BLOCK(1,1)*(1+a*0.05);%对载体图像的分块的DCT系数矩阵 BLOCK=idct2(BLOCK);%对DCT系数矩阵进行反变换,得到嵌入水印后载体 D(x:x+K-1,y:y+K-1)=BLOCK; % 用嵌入水印后的图像分块BLOCK代替载体图像

end %水印图像列循环结束 end %水印图像行循环结束 subplot(2,2,3);

imshow(D);title('嵌入水印后的图像');

imwrite(D,'D:\\matlab\\work\\new.jpg','jpg');%输出嵌入水印后的图像

5.3 离散余弦变换水印提取算法及其框图

(1) 读取嵌入黑白水印化的图像,并对图像进行分块;

(2) 对每一图像块进行逆DCT变换,得到嵌入水印后的图像块block_dct(x,y);

25

(3) 从每一图像块block_dct(x,y)提取出黑白水印元素W(p,q),进行DCT变换; (4) 合并图像块,得到原来的黑白水印图像,如图5-2所示:

原始图像嵌入水印图像8*8dct变换8*8dct变换水印提取Dct逆变换水印图像 图5-2 离散余弦变换水印提取算法

I=imread('D:\\matlab\\work\\original image.jpg','jpg'); D=imread('D:\\matlab\\work\\new.jpg','jpg'); for p=1:N

for q=1:N x=(p-1)*K+1; y=(q-1)*K+1;

BLOCK1 =I(x:x+K-1,y:y+K-1); BLOCK2 =D(x:x+K-1,y:y+K-1);

26

BLOCK1=dct2(BLOCK1); BLOCK2=dct2(BLOCK2); a=BLOCK2(1,1)/BLOCK1(1,1)-1; if a<0; w(p,q)=0; else w(p,q)=1; end end end

subplot(2,2,4); imshow(w,[]);

title('从含水印图像中提取的水印');

imwrite(w,'D:\\matlab\\work\\shuiyin.jpg','jpg');%输出提取水印

图5-3 离散余弦变换水印嵌入与提取结果

27

5.4 水印的攻击测试程序与结果

5.4.1不同噪声攻击测试

%不同的噪声攻击测试,结果如图5-4所示: %高斯噪声

D1=imnoise(D,'gaussian',0,0.001);

subplot(3,2,3);imshow(D1,[]);title('加入高斯噪声图像'); %椒盐噪声

D2=imnoise(D,'salt',0.02);

subplot(3,2,5);imshow(D2,[]);title('加入椒盐噪声图像'); %JPEG压缩攻击,结果如图5-5所示:

imwrite(D,'attak.jpg','jpeg','Quality',75); %压缩比默认75 H=imread('attack.jpg','jpeg'); %高斯低通滤波处理,结果如图5-6所示:

hh=fspecial('gaussian',3,0.2); %hh=fspecial('gaussian',3,0.4); %hh=fspecial('gaussian',3,0.5); QQ=filter2(hh,D); %滤波 %旋转攻击,结果如图5-7所示:

%R=imrotate(D,10,'bilinear','crop'); R=imrotate(D,20,'bilinear','crop'); %R=imrotate(D,60,'bilinear','crop'); %缩放攻击,结果如图5-8所示:

D=imread('D:\\matlab\\work\\new.jpg','jpg');

28

B=imresize(D, 1.5) % >1,扩大: %剪切攻击,结果如图5-9所示:

% D(1:32,1:32)=0; Q2=D; % D(1:64,1:64)=0; Q2=D; D(1:256,1:256)=0; Q2=D; for p=1:N

for q=1:N x=(p-1)*K+1; y=(q-1)*K+1;

BLOCK1 =I(x:x+K-1,y:y+K-1); BLOCK2 =D1(x:x+K-1,y:y+K-1); BLOCK1=dct2(BLOCK1); BLOCK2=dct2(BLOCK2);

a=BLOCK2(1,1)/BLOCK1(1,1)-1; if a<0; w(p,q)=0; else

w(p,q)=255; end end end

%显示提取的水印 subplot(3,2,4);

29

imshow(w,[]);

title('经过高斯噪声攻击水印图像中提取的水印')

D2=imnoise(D,'salt',0.02);

图5-4 噪声攻击提取水印

5.4.2 JPEG压缩攻击测试

图5-5 JPEG压缩攻击提取水印

30

5.4.3 高斯低通滤波攻击

图5-6 高斯低通滤波攻击提取水印

5.4.4 其他攻击测试

图5-7 旋转攻击提取水印

31

图5-8 缩放攻击提取水印

图5-9 剪切攻击提取水印

32

5.5 实验结果分析

不同程度的高斯噪声与椒盐噪声造成的影响,结果如图5-10,图5-11所示: (1) D1=imnoise(D,'gaussian',0,0.01); %默认均值m=0,方差var=0.01

D2=imnoise(D,'salt',0.05); 噪声密度d=0.05 %默认的噪声密度为d=0.05

图5-10 噪声攻击提取水印

(2) D1=imnoise(D,'gaussian',0,0.001); %默认均值m=0,方差var=0.01

D2=imnoise(D,'salt',0.01); 噪声密度d=0.01 %默认的噪声密度为d=0.05

图5-11 噪声攻击提取水印

33

表1 噪声攻击后相关参数对比

噪声 高斯 椒盐 PSNR Var=0.01 25.7549 Var=0.001 23.6979 D=0.05 24.4368 D=0.01 17.5948 NC 0.4916 0.7017 0.4946 0.8705 SSIM 0.2666 0.6104 0.3004 0.8257 从噪声总类的不同,以及相关系数的差异,我们可以看出,对于高斯噪声而言,随着方差的变化,方差越大,其相似度就越小,图像失真越严重。对于椒盐噪声而言,随着噪声密度的变化,密度越大,其相似度就越小,图像失真越严重。总体来说,传输过程中的噪声攻击对于基于DCT分块的数字图像水印的这种算法,提取水印的效果较好。如表1.

不同质量因子(压缩比)造成的影响。结果如图5-12,图5-13 ,图5-14所示: (1)imwrite(D,'attack.jpg','jpeg','Quality',75); %压缩比默认75

图5-12 JPEG压缩攻击提取水印

(2)imwrite(D,'attack.jpg','jpeg','Quality',50);

34

图5-13 JPEG压缩攻击提取水印

(3)imwrite(D,'attack.jpg','jpeg','Quality',15);

图5-14 JPEG压缩攻击提取水印

表2 JPEG压缩攻击后相关参数对比 PSNR JPEG压缩 (压缩因子) 75 50 15 35.8126 35.8330 35.8347 0.8015 0.3674 0.3474 NC 从不同的压缩质量因子d, d选择区间为0到100,其数值越小,失真越严重。

35

进而使提取的水印与原水印相似度就越小。如表格2。

表3 整体相关参数对比

各种攻击 噪声 攻击 PSNR 高斯噪声 22.8681 椒盐噪声 20.4358 35.8126 35.8119 NC 0.7220 0.7389 0.8015 0.8975 SSIM(衡量新指标) 0.6040 0.6594 0.0020 0.9999 JPEG压缩攻击 高斯滤波攻击 旋转攻击 剪切攻击 32.5924 35.8200 0.4246 0.5218 0.0106 0.0015 图5-9中对嵌入水印后图像背景进行剪切,会发现提取出的脆弱性水印在相 应位置的水印失真而且是完全变黑,这样就可以准确地检测出篡改的位置。实验结果表明可以根据提取的水印来定位篡改的位置。

从整体上来看,本设计中,基于dct的数字图像水印的提取与嵌入,以及其性能的检测有着一定的可取性。其对传输过程中的噪声的影响有着一定的抵抗能力。而且对于高斯滤波攻击等一些非刻意的攻击具备较强的抵抗能力。然而其也具有一定的缺陷,例如物理性攻击如旋转,缩放等易造成嵌入水印的提取不出来,水印严重失真。对于剪切的攻击,我们可以通过提取的图像来确定其原始含水印图像的剪切修改的位置。本实验采用的仿真软件是MATLAB7.0,此版本与较高版本相比会缺少一些函数,需要我们加入一些函数,如比较两函数的相似度的函数,如归一化函数nc.m,峰值信噪比psnr.m,以及最新的ssim.m算法。

整体来说,嵌入的水印图像还是比较清晰地,在不经过攻击时,提取的水印图像还是比较清晰的。基于离散余弦变换的数字图像水印的算法,对于滤波以及剪切而言

36

还是具有理想的效果。然而对于旋转,压缩,缩放等,水印提取过程就不太理想,提取出来的水印模糊不清,效果较差。因此,若要更好的实现这种水印提取的效果,我们需要改进数字图像水印的方法。对于这种情况,只有组合不同的方法才能达到最好的效果。

37

致 谢

本论文的完成得到了老师、同学支持和帮助,在我论文完成和毕业之际,借此机会以示感谢。

首先感谢我的导师王老师这三月来对我在学习上的悉心指导与热情帮助,从开展的项目以及课题研究和最后毕业论文的撰写和修改工作,老师都付出了很大的心血给予了指导和帮助,我从中也学到了不少东西并得到了相应的进步:在学习的过程中,王老师渊博的知识、精湛的业务、丰富的阅历、严谨的治学态度以及崇高的人格激励着我,使我受益非浅。王老师不仅是我学业的导师,更是我人生的导师。借此机会,向指导我的恩师表示崇高的敬意和衷心的感谢!

最后,感谢参加论文评审和答辩的各位老师,感谢他们抽出宝贵时间对论文进行指导和帮助。

38

参考文献

[1] Manjit Thapa, Sandeep Kumar Sood.On Secure Digital Watermarking Techniques[J] .2011, 2:

169-184 [2] 徐珺.基于DCT域的数字图像水印技术的研究[D]. 内蒙古:内蒙古师范大学计算机

系,2009 [3] 高建华.论版权保护的图像数字水印技术研究[J]. 计算机安全,2012:115-124 [4] 陈琦,邓峰森.数字水印技术[M]. 西安:西安电子科技大学出版社出版,2008.56-67 [5] 吕建勋,贾世杰.基于图像的数字水印技术[J]. 计算机技术与发展,2009:115-134 [6] 刘晖,MATLAB在数字水印中研究的应用[J]. 科技信息,2011:213-225

[7] 朱懿.基于压缩域的图像数字水印的研究[D],北京邮电大学硕士学位论文,2008 [8] 黄仿元.基于LSB的数字水印算法和MATLAT实现[J].计算机应用,2008:221-231 [9] 三炳锡,彭天强.信息隐藏技术[M].北京:国防大学出版社,2007.80-85

[10] 葛哲学,沙威.小波分析理论与MATLAB实现[M].北京:电子工业出版社,2007.34-45 [11] Benedetto Francesco, GiuntaGaetano, NerAlessandr.A new Color Space Domain for

Digital Watermarkingin MultimediaApplication[C]. IEEE Internationa Conferenceon Image Processing. neva,Italy,2005,1:249-252 [12] 潘纲,吴朝晖,吕红兵等.基于二维DCT的双图像数字水印算法[J].工程图像学

学报,2005:15-19

39

附 录

(1)psnr.m

function [psnr,mse]=psnr(X,Y) % 对double类型的处理 [m,n]=size(X);

k=sum(sum((Y-X).^2)); mse=k/m*n;

psnr=10*log10(255^2/mse) (2) nc.m

function nc1=nc(X,Y) %X是原始图像,Y是提取的水印信息,必须是double类型

XX=mean2(X); YY=mean2(Y); X1=X-XX; Y1=Y-YY;

a=sum(sum(abs(X1).*abs(Y1))); %a=sum(sum(X1.*Y1));

b=sqrt(sum(sum(X1.^2))*sum(sum(Y1.^2))); nc1=a/b;

(3) ssim.m

function [mssim, ssim_map] = ssim(img1, img2, K, window, L) if (nargin < 2 | nargin > 5) ssim_index = -Inf; ssim_map = -Inf;

40

return; end

if (size(img1) ~= size(img2)) ssim_index = -Inf; ssim_map = -Inf; return; end

[M N] = size(img1); if (nargin == 2)

if ((M < 11) | (N < 11)) ssim_index = -Inf; ssim_map = -Inf; return end

window = fspecial('gaussian', 11, 1.5); % K(1) = 0.01; % default settings K(2) = 0.03;

%

L = 255; end

if (nargin == 3)

if ((M < 11) | (N < 11)) ssim_index = -Inf; ssim_map = -Inf; return end

41

%

window = fspecial('gaussian', 11, 1.5); L = 255;

if (length(K) == 2) if (K(1) < 0 | K(2) < 0)

ssim_index = -Inf;

ssim_map = -Inf; return;

end else

ssim_index = -Inf; ssim_map = -Inf; return; end end

if (nargin == 4)

[H W] = size(window);

if ((H*W) < 4 | (H > M) | (W > N)) ssim_index = -Inf; ssim_map = -Inf; return end L = 255;

if (length(K) == 2) if (K(1) < 0 | K(2) < 0)

ssim_index = -Inf;

42

ssim_map = -Inf; return;

end else

ssim_index = -Inf; ssim_map = -Inf; return; end end

if (nargin == 5)

[H W] = size(window);

if ((H*W) < 4 | (H > M) | (W > N)) ssim_index = -Inf; ssim_map = -Inf; return end

if (length(K) == 2) if (K(1) < 0 | K(2) < 0)

ssim_index = -Inf;

ssim_map = -Inf; return;

end else

ssim_index = -Inf; ssim_map = -Inf;

43

return; end end

img1 = double(img1); img2 = double(img2); % automatic downsampling f = max(1,round(min(M,N)/256)); %downsampling by f

%use a simple low-pass filter if(f>1)

lpf = ones(f,f); lpf = lpf/sum(lpf(:));

img1 = imfilter(img1,lpf,'symmetric','same'); img2 = imfilter(img2,lpf,'symmetric','same'); img1 = img1(1:f:end,1:f:end); img2 = img2(1:f:end,1:f:end); end

C1 = (K(1)*L)^2; C2 = (K(2)*L)^2;

window = window/sum(sum(window)); mu1 = filter2(window, img1, 'valid'); mu2 = filter2(window, img2, 'valid'); mu1_sq = mu1.*mu1; mu2_sq = mu2.*mu2; mu1_mu2 = mu1.*mu2;

44

sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq; sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq; sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2; if (C1 > 0 & C2 > 0)

ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2));

else

numerator1 = 2*mu1_mu2 + C1; numerator2 = 2*sigma12 + C2; denominator1 = mu1_sq + mu2_sq + C1;

denominator2 = sigma1_sq + sigma2_sq + C2; ssim_map = ones(size(mu1));

index = (denominator1.*denominator2 > 0);

ssim_map(index) = (numerator1(index).*numerator2(index))./(denominator1(index).*denominator2(index));

index = (denominator1 ~= 0) & (denominator2 == 0); ssim_map(index) = numerator1(index)./denominator1(index); end

mssim = mean2(ssim_map); return

45