《数字水印算法设计.doc》由会员分享,可在线阅读,更多相关《数字水印算法设计.doc(36页珍藏版)》请在三一办公上搜索。
1、 课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 数字水印算法设计 初始条件: MATLAB软件平台、版权图像、水印图像要求完成的主要任务:1. 设计任务学习掌握一种数字水印算法,选择两幅图像分别作为版权图像和水印图像,采用水印嵌入算法成生含水印图像。采用水印提取算法,提取出嵌入水印。并对水印算法的鲁棒性进行测试。2. 设计要求 掌握一种数字水印的嵌入与提取算法原理。 编写出水印嵌入算法的matlab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明。 编写出水印提取算法matlab程序,并给出水印原图和提取出的水印图像,并对水印的提取效果进行分
2、析说明。 进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。测定提取前后水印的峰值信噪比(PSNR)和相关性(NC)时间安排: 第18-19周。指导教师签名: 年 月 日系主任签名: 年 月 日目 录摘 要1Abstract21数字水印概念31.1数字水印分类31.2数字水印作用41.3数字水印研究现状及未来52数字水印算法62.1数字水印基本原理62.2数字水印通用模型72.3典型数字水印算法82.3.1基于空域的数字水印算法82.3.2基于频域的数字水印算法92.3.3基于压缩域的数字水印算法102.3.4NEC算法102.3.5生理模型算法102.4离散余弦变换(DCT)算
3、法112.4.1DCT变换公式112.4.2二维DCT的性质122.5离散余弦变换的水印嵌入132.6离散余弦变换的水印提取143数字水印算法的MATLAB编程153.1数字水印的嵌入153.2数字水印的提取174数字水印的抗攻击实验194.1噪声攻击204.2滤波攻击214.3压缩攻击224.4剪切攻击224.5旋转攻击234.6探究嵌入因子对实验的影响255小结与体会26参考文献27附录28摘 要现今数字时代的到来,多媒体数字世界丰富多彩,数字产品几乎影响到每一个人的日常生活。所谓“数字水印”是往多媒体数据中添加的某些数字信息,比如将在数码相片中添加摄制者的信息,在数字影碟中添加电影公司的
4、信息等等。与普通水印的特性类似,数字水印在多媒体数据中(如数码相片)也几乎是不可见的,也很难被破坏掉。因此数字水印在今天的计算机和互联网时代大有可为。数字水印技术基本上具有下面几个方面的特点:安全性:数字水印的信息应是安全的,难以篡改或伪造,同时,应当有较低的误检测率,当原内容发生变化时,数字水印应当发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加有很强的抵抗性。隐蔽性:数字水印应是不可知觉的,而且应不影响被保护数据的正常使用;不会降质;鲁棒性:是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持部分完整性并能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模与模/
5、数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等。主要用于版权保护的数字水印易损水印(Fragile Watermarking),主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定原始数据是否被篡改。水印容量:是指载体在不发生形变的前提下可嵌入的水印信息量。嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或购买者的序列号,这样有利于解决版权纠纷,保护数字产权合法拥有者的利益。尤其是隐蔽通信领域的特殊性,对水印的容量需求很大。关键词:数字水印、鲁棒性、MATLABAbstractDigital wat
6、ermark (Digital Watermarking) technology is to some identifying information (Digital Watermarking) is directly embedded into the Digital carrier (including multimedia, documentation, software, but does not affect the use value of the original carrier, also not easy to sensory systems (such as visual
7、 or auditory system) perceive or notice. Through these information hidden in the carrier, can be sent to confirm content creators, buyers, hidden information or whether the carrier have been tampered with. Digital Watermarking is an important research direction of information hiding technology.As di
8、gital watermarking technique basically has the following several aspects: the characteristics of security, digital watermarking information should be safe, difficult to tampering or forgery, at the same time, should have a lower error detection rate, when the original content changes, digital waterm
9、arking should be changed, which can detect the change in the original data; Digital watermarking to repeating the same, of course, add strong resistance. Concealment: digital watermarking should be perception, and should not affect the normal use of protected data; Not lower quality; Robustness: ref
10、ers to the experience of unintentional or intentional after signal processing, digital watermarking can remain part of the integrity and can be correctly identified. Most is mainly used for copyright protection of digital Watermarking, mainly used for integrity protection, the same watermark is embe
11、dded in content data information is not visible. When the content changes, the watermark information will happen corresponding change, in order to identify whether the raw data has been tampered with. Watermark capacity: refers to the carrier under the premise of not happen deformation can embed wat
12、ermark information. Embedded watermark information must be adequately represent multimedia content creator or the owner of the mark information, or the serial number of the buyer, this is beneficial to solve the copyright disputes, to protect the interests of digital property rights legal owner. The
13、 particularity of covert communication field, in particular, the watermark capacity is a big demand.Keywords: digital watermark, robustness, MATLAB数字水印算法设计1 数字水印概念数字水印(Digital Watermarking)技术是将一些标识信息(即水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改,但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可
14、以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。 数字水印是实现版权保护的有效办法,是信息隐藏技术研究领域的重要分支。1.1 数字水印分类(1) 按水印的特性可以将数字水印分为鲁棒数字水印和易损数字水印两类。鲁棒数字水印主要用于在数字作品中标识著作权信息,利用这种水印技术在多媒体内容的数据中嵌入标示信息。在发生版权纠纷时,标示信息用于保护数据的版权所有者。用于版权保护的数字水印要求有很强的鲁棒性和安全性。易损水印,与鲁棒水印的要求相反,易损数字水印主要用于完整性保护,这种水印同样是在内容数据中嵌入不可见的信息。当内容发生改变时,这些水印信息会发生相应的改变,从而可以鉴定
15、原始数据是否被篡改。易损水印必须对信号的改动很敏感,人们根据易损水印的状态就可以判断数据是否被篡改过。(2) 按水印所附载的媒体划分可分为文本水印、图像水印、音频水印、视频水印及软件水印等。图像水印将水印信息嵌入到图像中,发生所有权争议时,通过提取、检测嵌入信息来证实所有权。图像水印利用人类视觉系统的特点,应用最为广泛。根据水印嵌入方式不同,图像水印算法主要分为时(空)域方法和变换域方法两类。1.2 数字水印作用最早提出数字水印的概念与方法是为了进行多媒体数据的版权保护。随着计算机和互联网的发展,越来越多的艺术作品、发明或创意都开始以多媒体数据的形式表达,比如用数码相机摄影,用数字影院看电影,
16、用MP3播放器听音乐,用计算机画画等等。所有活动所涉及的多媒体数据都蕴含了大量价值不菲的信息。与作者创作这些多媒体数据所花费的艰辛相比,篡改、伪造、复制和非法发布原创作品在信息时代变成了一件轻而易举的事情。任何人都可以轻而易举地创建多媒体数据的拷贝,与原始数据比较,复制出的多媒体数据不会有任何质量上的损失,即可以完整地“克隆”多媒体数据。因此如何保护这些数据上附加的“知识产权”是一个亟待解决的问题。那么数字水印则正好是解决这类“版权问题”的有效手段。比如以前的画家用印章或签名标识作品的作者,那么今天他可以通过数字水印将自己的名字添加到作品中来完成著作权的标识。同样,音像公司也可以把公司的名字、
17、标志等信息添加到出版的磁带、CD碟片中。这样通过跟踪多媒体数据中的数字水印信息来保护多媒体数据的版权。除了在版权保护方面的应用,数字水印技术在文档(印刷品、电子文档等)的真伪认证上面也有很大的用途,例如对政府部门签发的红头文件,文件认证的传统方法是鉴别文件的纸张、印章或钢印是否符合规范和标准,缺点是无论纸张、印章或钢印都容易被伪造。特别是印章,虽然政府部门对印章的管理和制作有严格规定,但社会上还是有所谓“一个萝卜刻一个章”的说法。这说明传统方法有着极不完善的地方。使用数字水印技术则可以有效解决这个问题。以数字水印作为信息载体,将某些信息添加到红头文件中,使得文件不仅有印章或钢印,而且有难以察觉
18、的数字水印信息,从而大大增加了文件被伪造的难度。将数字水印信息添加到文档中,也意味着某些信息可以在文档中被写入两次。例如护照持有人的名字在护照中被明显印刷出来,也可以在头像中做为数字水印被隐藏起来,如果某人想通过更换头像来伪造一份护照,那么通过扫描护照就有可能检测出隐藏在头像中的水印信息与打印在护照上的姓名不符合,从而发现被伪造的护照。此外数字水印还用来做多媒体数据的访问控制和复制控制。比如CD数据盘中秘密的数字水印信息可以有条件的控制什么样的人可以访问该CD盘中的内容。目前DVD已经火爆国内电子市场,有很多大公司开始研究如何应用数字水印系统改进DVD的访问与复制控制。比如希望消费者手中的DV
19、D播放器允许无限制地复制家庭录像或过期的电视节目,家庭录像中所添加的数字水印不含任何控制标识,电视节目里的数字水印标识为“复制一次”、“复制多次”,而商业的视频节目则标识为“不允许复制”,相关的播放设备将对这些数字水印标识进行判别并起相应作用。这样就既保证了消费者私下复制、交换节目的自由,又有效控制了商业上的侵权行为。目前全部的解决方案已经形成,问题是该解决方案的安全性、有效性、简洁性还需做进一步的考验,暂时不能提供给DVD制造商和用户。数字水印技术还可以应用于信息的安全通信。由于人们很难觉察到数字水印信息在多媒体数据中的存在,某些重要信息在传输的过程中就可以隐藏在普通的多媒体数据,从而避开第
20、三方的窃听和监控。国外报纸报道恐怖分子头目本-拉登就利用公开发布的数字水印技术,将给基地组织的指令通过数字水印隐藏在普通数码相片中,然后发布到一些网站的BBS上,基地组织成员根据约定好的规则将数码相片中的数字水印信息提取出来。这种做法与普通的电话通信、电子邮件通信以及加密通信相比,隐蔽性高,不容易监控,而且很难被察觉。1.3 数字水印研究现状及未来随着计算机网络技术的发展,数字水印在数字产品保护方面越来越受到重视,在许多国家已经得到了广泛的应用。德国利用数字水印技术来防止伪造电子照片,美国在商标及包装印刷方面都应用了数字水印技术,日本的保险票据中也加入数字水印来作为防伪。在我国数字水印技术研究
21、起步较晚,才只有几年时间,但发展速度很快,已经有相当一批有实力的科研机构投入到这一领域的研究中来。为了促进数字水印及其他信息隐藏技术的研究和应用,1999年12月,我国信息安全领域的何德全院士、周仲义院士、蔡吉人院士与有关应用研究单位联合发起召开了我国第一届信息隐藏学术研讨会。2000年1月,由国家“863”智能机专家组和中科院自动化所模式识别国家重点实验室组织召开了数字水印学术研讨会,来自国家自然科学基金委员会、国家信息安全测评认证中心、中国科学院、北京邮电大学、国防科技大学、清华大学、北方工业大学、上海交通大学、天津大学、中国科技大学、北京大学、北京理工大学、中山大学、北京电子技术应用研究
22、所等单位的专家学者和研究人员深入讨论了数字水印的关键技术,报告了各自的研究成果。从这次会议反应的情况上看,我国相关学术领域的研究与世界水平相差不远,而且有自己独特的研究思路。因为数字水印的基本思想是在原始媒体数据中附加信息作为标记,这些信息与原始数据紧密结合,并随之一起被传输。在接收端,通过计算机水印信号被提取出来用于数字签名、数字指纹、广播监视、内容认证、拷贝控制和秘密通信等。数字水印被视作抵抗多媒体盗版的“ 最后一道防线”。所以从数字水印技术自身来说,它具有广泛的应用前景和巨大的经济价值。2 数字水印算法2.1 数字水印基本原理水印的基本原理是嵌入某些标识数据到宿主数据中作为水印,使得水印
23、在宿主数据中不可感知和足够安全。为了保证由于水印的嵌入而导致的宿主数据失真不被觉察到,必须应用到某种感知准则。不管是隐性还是显性,但是必须的。因而作为不可觉察性的要求,宿主数据上的每个采样点的值(空间域或频率域)的改变程度与其 自身相比应该相对比较小。为了保证水印算法的鲁棒性,水印信息在宿主数据上通常有很大的冗余度。这意味着水印信息可以从其部分数据中恢复出来。但如果在恢 复过程中能提供更多的数据那么恢复的鲁棒性则更强。正如前面所说,水印算法还要结合加密方法以提供其安全性。因此我们下面给出一个通用意义下的水印算法。通用的数字水印算法包含两个基本方面:水印的嵌入和水 印的提取或检测。水印可由多种模
24、型构成,如随机数字序列、数字标识、文本以及图像等。从鲁棒性和安全性考虑,常常需要对水印进行随机化以及加密处理。水印检测待嵌入的水印信息水印图像水印嵌入原始图像人眼视觉图1 数字水印技术的基本原理2.2 数字水印通用模型数字水印技术包括嵌入、检测和提取3个过程。嵌入模型的功能是要将水印信号加入到原始数据中。嵌入阶段的设计主要解决两个问题:一是数字水印的生成,可以是一串伪随机数,也可以是指定的字符串、图标等,并经过加密后产生的信息 。 二是嵌入算法,嵌入方案的目标是使数字水印在不可见性和鲁棒性之间找到一个较好的折中。 频域法加入数字水印的原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域
25、,常用的变换一般有DWT、DCT、DFT、WP和分形。然后,对加入了水印信息的信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息的信号。频域法检测水印的原理是将原始信号与待检测信号同时进行变换域变换,比较两者的区别,进行嵌入水印的逆运算,得出水印信息。如果是可读的水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出的水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印的检测有两个结果。水印信号检测模型是用来判断某一数据中是否含有指定的水印信号,如图2.13所示。检测阶段主要是设计一个对应于嵌入过程的检测算法。检测的结果用来判断是否存在原水印,检测方案的目
26、标是使错判与漏判的概率尽量小,为了给攻击者增加去除水印的难度,目前大多数水印制作方案都在加入、提取时采用了密钥,只有掌握密钥的人才能读出水印。提取数字水印设备只需要有打印机、扫描仪、计算机等设备。图2 水印嵌入模型 图3 水印信号检测模型2.3 典型数字水印算法2.3.1 基于空域的数字水印算法基于空域的数字水印算法通过直接对宿主信息作变换来嵌入水印信息。早期的数字水印算法是以空域算法为主的。算法通常比较简单,运算量小,缺点是抵抗攻击的能力往往会比较弱。该类算法中典型的水印算法是最低有效位算法(LSB:least significant bits),它是由L.F.Turner和R.G.van
27、Schyndel等人提出的国际上最早的数字水印算法,是一种典型的空间域信息隐藏算法。将信息嵌入到随机选择的图像点中的最不重要像素位上,这样可以保证被嵌入的水印不易被察觉。但是由于该算法使用了图像不重要的像素位,所以算法的鲁棒性差,水印信息很容易被滤波、图像量化、几何变形等操作破坏。另外一种常用的方法是利用图像像素的统计特征将信息嵌入像素的亮度值中。典型的算法是Patchwork算法,该算法是由麻省理工学院媒体实验室Walter Bander等人提出的一种数字水印算法,主要用于打印票据的防伪。该算法是随机选择N对像素点,然后将每个第一位点的亮度值增加一个量,每个第二位点的亮度值减少同样的一个量,
28、这样可以保证整个图像的平均亮度不发生改变,不易被察觉。适当地调整参数,Patchwork方法对JPEG压缩、FIR滤波、图像裁剪、灰度校正等具有一定的抵抗能力,但该方法嵌入的信息量有限,而且对仿射变换比较敏感。此外,还有纹理块映射编码法,该方法是将一个基于纹理的水印嵌入到图像具有相似纹理的一部分当中,由于此方法是基于图像纹理结构的,因而很难察觉水印。但是由于是嵌入图像某一部分当中,对剪切等图像处理操作抵抗能力较差。为提高水印在空间域的鲁棒性,此后出现了一些更为复杂的技术。Hernandez等人提出了一种深度2-D多脉冲幅度调制的方法。Wolfgang等人把二维的m序列作为水印嵌入到图像的LSB
29、平面,并利用互相关函数改善了检测过程。利用人类视觉系统的特性,1995年Macq和Qisquader等人提出了在图像边缘附近改变LSB位的数字水印方法。继而,Macq等人又提出了一种使用伪装和调制的水印方法,使嵌入的水印信号更加适应于宿主图像。Kutter等人提出了一种更加复杂的感知模型,用于亮度和蓝色通道水印的嵌入,由于人眼对蓝色不太敏感,在对蓝色分量调制时嵌入强度可以适当加大。Chen等人提出了一种基于量化索引调制而不是扩频调制的水印嵌入方法。为了抵制几何失Nikolaidis等人提出一种空间域水印方法,他们对图像中的重要区域进行鲁棒性估计和分割,并且在这些区域嵌入水印信息。此外,空域水印
30、还可以通过利用分形图像编码来实现。基于分形的数字图像水印方法目前主要有三类:第一类方法通过改变分形编码的编码参数嵌入水印。1996年J. Paute和F. Jordan提出了一种基于分形图像编码理论的数字水印方法,该方法利用图像不同部分间的相似关系,根据水印信息来构造分形码,在图像的编码和解码过程中完成水印的嵌入,而对嵌有水印的图像进行分形编码则可以提取水印。但这种方法所得到的水印的鲁棒性以及嵌入水印的图像质量都不能达到理想的效果。后来一些研究人员对此类方法进行了改进,包括在搜索范围上的改进,引进概率统计知识,应用改进的分形编码方法,改变分形编码的几何变换,改变灰度变换参数等。目前使用最多的是
31、第一种方法。第二类方法利用图像的自相似性嵌入水印。如Tsekeridou等人利用混沌映射产生具有自相似性的水印图像以及采用笛卡尔栅格水印等。第三类方法则将分形与其它理论相结合以嵌入水印信息。例如时域分形编码与DCT域分形编码相结合的方法等。2.3.2 基于频域的数字水印算法频域方法是把数字水印加入到图像的变换域,如DCT、DFT、DWT等。基于频域的数字水印技术相对于空间域的数字水印技术,通常具有更多优势,一般的几何变换对空域算法影响较大,而对频域算法却影响较小。E. Koch等人首先提出基于DCT域的水印算法,把图象分成88的子块,按块进行DCT变换,选取中间频段系数加入水印信息。M.D.S
32、wanson则根据人类的视觉特性, 利用频域伪装技术来改善DCT域水印的性能,使加入的水印信号不可见。Cox等人提出的基于扩频通信技术的频率域数字水印嵌入策略,旨在兼顾水印信息的不易察觉性和鲁棒性,其重要贡献在于提出了将水印应嵌入到图像信息感知重要的部分,达到提高水印鲁棒性的目的。A. G. Bors在DCT系数中加入满足正态分布的水印时,提出了两种约束方法:最小二乘法和定义在特定的DCT系数周围的圆形检测区域。Hemdndez等人结合视觉模型提出了一种DCT域盲水印技术,对DCT系数统计建模并设计了一种最大似然比水印检测器。1997年J.O.Ruanaidh等人提出了基于DFT的数字水印技术
33、。Xiang-GenXia等人提出了基于DWT的多尺度水印技术,把高斯白噪声加入到了DWT的高频系数中。D.Kundur等人把小波的多分辨率分析和人类的视觉特性融合进了数字水印技术。Zeng等人提出一种基于感知模型的变换域图像自适应水印方案,用临界可见误差来确定水印的最大嵌入能量。2.3.3 基于压缩域的数字水印算法基于 JPEG、MPEG 标准的压缩域数字水印技术节省了大量的解码和重新编码过程,对压缩编码方法具有更强的鲁棒性,水印的检测与提取也可直接在压缩域数据中进行。Hartung和Girod等人于1998年提出了MPEG-2压缩视频域上的数字水印算法,在保持码率基本不变的情况下,将水印嵌
34、入在DCT系数中,在检测时不需要原始媒体。Jordan等人提出采用MPEG-2码流的运动矢量来嵌入水印的方案。Talker等人提出了一种广播控制的应用方案。Langelaar等人提出通过加强视频片段中不同区域间的能量差别来加入水印,进而又提出了替换帧内编码块DCT系数的变长码和丢弃部分压缩视频码流的方法。Wang和Kuo将水印技术与小波编码结合起来,在实现压缩的同时完成了水印的嵌入。Lacy等人也开发了把水印和压缩技术相结合的算法.2.3.4 NEC算法NEC算法是由NEC实验室的Cox等人提出的基于扩展频谱的水印算法,它在数字水印算法领域中占有重要的地位。其实现方法是,首先以密钥为种子来产生
35、伪随机高斯N(0,1)分布序列,密钥一般由作者的标识码和图像的哈希值组成,然后对图像做DCT变换,用伪随机高斯序列来调制该图像除直流分量外的1000个最大的DCT系数。此算法具有较强的鲁棒性、安全性和透明性。由于算法采用密钥的特殊性,对IBM攻击有较强的抵抗力,而且该算法还提出了增强水印鲁棒性和抗攻击算法的重要原则,即水印信号应该嵌入宿主信息中对人感觉最重要的部分,这种水印信号由具有高斯N(0,1)分布的独立同分布随机实数序列构成。这使得水印经受多拷贝联合攻击的能力有了很大程度的增强。2.3.5 生理模型算法人的生理模型包括人类视觉系统HVS(Human Visual System)和人类听觉
36、系统HAS(Human Auditory System)。近些年来,利用人的生理模型的特性来提高多媒体数据压缩系统质量和效率的研究得到了许多关注,该特性不仅被多媒体数据压缩系统所利用,而且同样可以被数字水印系统所利用。Podilchuk利用一些视觉模型,实现了基于分块DCT框架和基于小波分解框架的数字水印系统。其基本思想是利用从视觉模型导出的JND(Just Noticeable Difference)描述来确定在图像的各个部分所能容忍的数字水印信号的最大强度,从而避免破坏视觉质量,即利用视觉模型来确定与图像相关的调制掩模来嵌入水印。这一方法既具有较好的透明性又具有很好的鲁棒性。综上所述,数字
37、水印算法正在不断的发展和前进中日益完善,但是仍然存在许多不足,具有更加深入的发展空间,这就需要我们在不断的学习和探索中寻找具有更好性能的新算法。2.4 离散余弦变换(DCT)算法2.4.1 DCT变换公式因为DCT 变换公式是这一算法的核心,有必要先了解一下DCT 正反变换公式。DCT 正反变换公式的核心是余弦变换,计算速度比较快,因图像处理所用的是二维变换,这里只给出二维的DCT 正反变换公式,二维DCT 正变换公式为: ; 其中: 二维DCT反变换公式为:其中x,y 为空间采样值,u,v 为频域采样值。因为数字图像多用像素方阵来标识,即M=N,此时,二维DCT 正反变换可以简化为: 2.4
38、.2 二维DCT的性质离散余弦变换是图像处理技术中几种最基本的酉变换之一。酉变化是线性变化的一种特殊形式,其基本线性运算式是严格可逆的,并且满足一定的正交条件。图像的酉变换可以被理解为分解图像数据为广义的二维频谱,变换域中每一分量对应于原图频谱函数的能量。设IMN 为MN 的图像矩阵则该图像的二维DCT 变换可由下式表示:FDCT=其中: 其中经过二维DCT 变换得到的DCT 系数矩阵GDCT 指示了一系列频率中每一个频率所对应的变化程度,即频率的高低。其中低频分量将集中在矩阵的左上角,高频分量则集中在右下角。图像的低频分量反映图像慢变化,即图像整体部分;图像的高频分量代表图像跳变的地方,即图
39、像细节部分,如轮廓、边缘。根据人类视觉系统,图像整体比细节部分更为重要,若一幅图像经过处理后而视觉改变不大,则其低频分量必定改变程度不大。此算法采用了将数字水印的灰度值植入DCT 域的低频分量中的方法。二维离散余弦变换是一种严格可逆的酉变换。它的两个矩阵AMM BNN 满足以下的正交条件: 由此,易得到离散余弦逆变换(IDCT): 正因为DCT 是一种严格可逆的正交变换,才可能对基于DCT 的植入算法实现准确的数字水印滤波。2.5 离散余弦变换的水印嵌入数字图像水印算法选择二值化灰度图像作为水印信息,根据水印图像的二值性选择不同的嵌入系数,并将载体图像进行88的分块,将数字水印的灰度值直接植入
40、到载体灰度图像的DCT变换域中,实现水印的嵌入。具体方法如下:设I是MN大小的原始图像,J是水印图像大小为PQ,M和N分别是P和Q的偶数倍,把水印J加载到图像I中,算法分以下几步进行:1. 将I分解为(M/8)(N/8)个88大小的方块B;同时,J也分解为 (M/8)(N/8)个(8P/M)(8Q/N)大小的方块V; 2. 对每一个B进行DCT变换:DB=DCT(B);3. 加载水印对每一个DB和V,s(i)为从DB的中频选出的加载的位置 , 1i(8P/M)(8Q/N), t(i)为水印V的位置坐标 , 1i(8P/M)(8Q/N),DB(s)=AV,其中A是加权系数,用DB(s)来代替DB
41、,得到加载水印后的图像DBC;4. 对以上得到的每一个DBC进行逆DCT变换:IDBC=IDCT(DBC)并将各方块IDBC合并为一个整图I,即加载了水印的新图像。改变水印信息形式分块水印图像含水印图像合块IDCT水印嵌入DCT分块原始图像图像图4 DCT变换的水印嵌入2.6 离散余弦变换的水印提取设图像D为已经加载了水印的载体图像,现要将所加载的水印从D中提取出来,其过程为上述加载水印算法的逆运算。具体方法如下:1. 将D分解为(M/8)(N/8)个88大小的方块BD;2. 对每一个BD进行DCT变换:DBD=DCT(BD);3. 提取数据信息,将提出来的水印信息与原始水印信息进行比较,进行
42、正确的判断,水印相似度计算(相关系数):4.对每一个DBD,按照式V=1/ADBD得到V;5. 将上面得到的所有V合并成一个水印整图。分块处理DCT提取信息含水印图像得到完整水印图像合块处理图5 DCT变换的水印提取3 数字水印算法的MATLAB编程3.1 数字水印的嵌入根据DCT数字水印算法,编写的数字水印嵌入MATLAB程序如下:clear all; clc;start_time=cputime;%读取水印图像 I=imread(数字水印.bmp);I=double(I)/255; I=ceil(I); %将I取整(向大于等于I的方向取整)二值化%显示水印图像figure(1);subpl
43、ot(2,3,1);imshow(I),title(水印图像)dimI=size(I);%图像的行列数rm=dimI(1);cm=dimI(2); %行数和列数%生成水印信息 mark=I;chidu=15, %嵌入因子,控制水印嵌入强度k1=randn(1,8); %产生18的服从正太分布的伪随机数矩阵k2=randn(1,8);a0=imread(lena.bmp); %读未加水印图像psnr_cover=double(a0); %转换为double型subplot(2,3,2),imshow(a0,),title(未加水印图像);r,c=size(a0); %载体图像的行列数cda0=b
44、lkproc(a0,8,8,dct2); %对载体图像分成88块进行2维DCT处理% 嵌入水印 cda1=cda0; % cda1 = 512-512for i=1:rm % i=1:64 %水印图像行循环 for j=1:cm % j=1:64 %水印图像列循环 x=(i-1)*8;y=(j-1)*8; %选择加载位置 if mark(i,j)=1 %根据水印图像中的黑白点选择不同的K矩阵 k=k1; else k=k2; end cda1(x+1,y+8)=cda0(x+1,y+8)+alpha*k(1); cda1(x+2,y+7)=cda0(x+2,y+7)+alpha*k(2); c
45、da1(x+3,y+6)=cda0(x+3,y+6)+alpha*k(3); cda1(x+4,y+5)=cda0(x+4,y+5)+alpha*k(4); cda1(x+5,y+4)=cda0(x+5,y+4)+alpha*k(5); cda1(x+6,y+3)=cda0(x+6,y+3)+alpha*k(6); cda1(x+7,y+2)=cda0(x+7,y+2)+alpha*k(7); cda1(x+8,y+1)=cda0(x+8,y+1)+alpha*k(8); endend%嵌入水印后图像 a1=blkproc(cda1,8,8,idct2); a_1=uint8(a1);imwrite(a_1,嵌入水印后图像.bmp,bmp);subplot(2,3,3),imshow(a1,),title(嵌入水印后的图像);disp(嵌入水印处理时间);embed_time=cputime-start_time, 程序运行后结果如下:图6 显示图像由运行结果