数字水印算法(包含完整程序)
- 格式:docx
- 大小:774.96 KB
- 文档页数:40
摘要随着计算机通信技术的迅速发展,传播数字多媒体信息也越来越方便快捷,迅速兴起的互联网以电子印刷出版、电子广告、数字仓库和数字图书馆、网络视频和音频、电子商务等新的服务和运作方式为商业、科研、娱乐等带来了许多机会。
然而,随之而来的盗版和侵权行为也越来越猖獗,对数字产品的保护和信息安全的迫切需求使得数字水印技术成为多媒体信息安全研究领域的一个热点问题.数字水印可以标识作者、所有者、发行者、使用者等并携带有版权保护信息和认证信息,保护数字产品的合法拷贝和传播.数字水印技术近年来得到了较大的发展,基于变换域的水印技术是目前研究的热点。
数字水印是利用数字作品中普遍存在的冗余数据和随机性,把标识版权的水印信息嵌入到数字作品中,从而可以起到保护数字作品的版权或其完整性的一种技术.本文首先介绍了数字水印的背景、意义以及目前国内外的研究现状等基本问题,接着介绍了数字水印的基本特征、原理,随后介绍了数字水印的基本框架和数字水印的分类,为数字水印算法的提出、实现及测试提供了理论依据。
介绍了一种基于DCT的数字水印嵌入算法以及一种基于小波变换的数字水印嵌入算法,使用MATLAB设计了实验方案。
关键字:数字水印Matlab DCT 小波变换AbstractWith the rapid development of computer communication technology, the spreadof digital multimedia information more and more convenient, rapid rise of Internet publishing electronic printing,electronic advertising, digital storage and digital libraries, online video and audio, e-commerce and other new servicesmany opportunities for commercial,research,entertainment,and mode of operation。
数字⽔印算法介绍数字⽔印算法列举湖南科技⼤学计算机科学与⼯程学院①基于LSB 的数字⽔印⽅案(空间域、不可逆、不可见和盲检测)嵌⼊步骤:(1)先把⽔印信息转化为⼆进制⽐特流I。
(2)根据I的长度⽣成密钥K,并且严格保存。
密钥K是对图像载体像素位置的⼀个映射。
(3)把I中的每⼀位依次根据密钥K,置换掉原始载体图像中相应位置的像素最后⼀位。
提取步骤:(1)根据严格保存的密钥K遍历嵌⼊了⽔印的图像中的相应像素,提取出最后⼀位。
(2)将提取出来的每⼀位重新组合成⽔印信息。
②基于差分扩展的数字⽔印⽅案(变换域、可逆、不可见和盲检测)嵌⼊步骤:(1)将图像M分成像素点对(x,y),将⽔印信息转化为⼆进制⽐特流,⽐特流的每⼀位⽤m 表⽰。
(2)根据⽔印信息⽐特流的长度随机⽣成信息的嵌⼊位置k作为密钥信息严格保存。
(3)对图像M计算均值l和差值h:-=+=yx h y x floor l 2((floor表⽰向下取整)(4)将⽔印⽐特信息m以差值扩展的⽅法嵌⼊到差值h中:mh h +?='2(5)将得到的h '代⼊(3)中,得到新的图像像素对,形成嵌⼊秘密信息后的图像C。
提取步骤:(1)将图像C分成像素点对(x,y),读⼊密钥信息K。
(2)将图像C依旧按照嵌⼊步骤中的(3)式计算均值l和差值h。
(3)根据密钥k找到相应位置,提取差值h的最后⼀位⽐特信息m,再将差值h进⾏变换得到1>>='h h 。
(4)将提取到的⽐特信息m进⾏组合可以恢复⽔印信息,将得到的h '代⼊嵌⼊步骤的(3)中计算新的图像像素对可以恢复原始图像载体M。
③基于直⽅图修改的数字⽔印算法(空间域、可逆、不可见和盲检测)嵌⼊步骤:(1)找到直⽅图的零点z和峰值点p,将z v p <<的像素值v⾃加1。
(2)漂移后的直⽅图v=p处即为嵌⼊⽔印的位置,将⽔印信息转化为⼆进制流并记为k,按顺序嵌⼊,即k v v +=';(3)得到的由像素值v '组成的图像就是嵌⼊秘密信息后的图像。
1.数字作品的知识产权保护----数字作品(如电脑美术、扫描图像、数字音乐、视频、三维动画)的版权保护是当前的热点问题。
由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。
----“数字水印”利用数据隐藏原理使版权标志不可见或不可听,既不损害原作品,又达到了版权保护的目的。
目前,用于版权保护的数字水印技术已经进入了初步实用化阶段,IBM公司在其“数字图书馆”软件中就提供了数字水印功能,Adobe公司也在其著名的Photoshop软件中集成了Digimarc公司的数字水印插件。
然而实事求是地说,目前市场上的数字水印产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。
2.商务交易中的票据防伪----随着高质量图像输入输出设备的发展,特别是精度超过 1200dpi 的彩色喷墨、激光打印机和高精度彩色复印机的出现,使得货币、支票以及其他票据的伪造变得更加容易。
----另一方面,在从传统商务向电子商务转化的过程中,会出现大量过度性的电子文件,如各种纸质票据的扫描图像等。
即使在网络安全技术成熟以后,各种电子票据也还需要一些非密码的认证方式。
数字水印技术可以为各种票据提供不可见的认证标志,从而大大增加了伪造的难度。
3.证件真伪鉴别----信息隐藏技术可以应用的范围很广,作为证件来讲,每个人需要不只一个证件,证明个人身份的有:身份证、护照、驾驶证、出入证等;证明某种能力的有:各种学历证书、资格证书等。
国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了正常的经济秩序,对国家的形像也有不良影响。
通过水印技术可以确认该证件的真伪,使得该证件无法仿制和复制。
4.声像数据的隐藏标识和篡改提示----数据的标识信息往往比数据本身更具有保密价值,如遥感图像的拍摄日期、经/纬度等。
数字水印源码,希望对大家学习有帮助.%由高斯正态分布序列g1 产生36×4 的水印信%号w0,w0 由(0,1)组成。
clearrandn(’state’,1106);g1=randn(36,4);for i=1:36for j=1:4if g1(i,j)〉=0w0(i,j)=1;else w0(i,j)=0;end;end;end;figure;imshow(w0);title('水印');%对水印信号w0 进行(7,4)汉明编码,得到一%36×7 的分组码x0。
x0=w0;for i=1:36s=8*x0(i,1)+4*x0(i,2)+2*x0(i,3)+x0(i,4);x0(i,5)=0;x0(i,6)=0;x0(i,7)=0;case 1x0(i,5)=0;x0(i,6)=1;x0(i,7)=1; case 2x0(i,5)=1;x0(i,6)=1;x0(i,7)=0; case 3x0(i,5)=1;x0(i,6)=0;x0(i,7)=1; case 4x0(i,5)=1;x0(i,6)=1;x0(i,7)=1; case 5x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;case 6x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;case 7x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;case 8x0(i,5)=1;x0(i,6)=0;x0(i,7)=1;case 9x0(i,5)=1;x0(i,6)=1;x0(i,7)=0;case 10x0(i,5)=0;x0(i,6)=1;x0(i,7)=1;case 11x0(i,5)=0;x0(i,6)=1;x0(i,7)=0;case 13x0(i,5)=0;x0(i,6)=0;x0(i,7)=1;case 14x0(i,5)=1;x0(i,6)=0;x0(i,7)=0;case 15x0(i,5)=1;x0(i,6)=1;x0(i,7)=1;end;end;% 对x0 进行行向位扩展,得到一个由(—1,1)组成%的扩展序列y。
课程设计任务书学生姓名:_______________ 专业班级:______________________ 指导教师:_______________ 工作单位:武汉理工大学题目:数字水印算法设计初始条件:(1) Mat lab应用软件的基本知识以及基本操作技能。
(2)高等数学、信号与系统等基础运算知识。
要求完成的主要任务:(1)掌握一种数字水印的嵌入与提取算法原理。
(2)编写出水印嵌入算法的mat lab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明。
(3)编写出水印提取算法mat lab程序,并给出水印原图和提取出的水印图像, 并对水印的提取效果进行分析说明。
(4)进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。
测定提取前后水印的峰值信噪比(PSNR)和相关性(NC)。
时间安排:6月20日到6月27日6月28日到7月3日7月4日理论设计与仿真撰写报告答辩年月日指导教师签名:系主任(或责任教师)签名:摘要 (2)ABSTRACT (3)1........................................................................................................................ 数字水印技术概述 (4)数字水印技术提出的背景 (4)数字水印的基本特点 (4)数字水印的应用 (5)软件的介绍 (7)MATLAB研究数字水印的优点 (7)MATLAB函数介绍 (8)3.傅立叶域水印理论基础 (10)傅立叶变换简述 (10)一维离散傅立叶变换DFT (10)快速傅立叶变换FFT (11)二维离散傅立叶变换 (12)傅立叶变换性质 (13)空间域平移性 (13)旋转不变性 (14)比例缩放性 (14)4.基于傅立叶域相关性检测的半盲水印 (15)引言 (15)基于Arnold变换的图像置乱算法 (15)水印算法 (17)算法原理 (17)算法的mat lab实现步骤 (20)算法的matlab实现及结果分析 (21)5.总结与心得体会 (26)6.参考文献 (27)附录 (28)随着计算机及网络技术的E速发展,数字作品传播和拷贝变得越来越方便, 同时使得数字作品的信息安全保护和版权保护也成为迫切需要解决的实际问题。
经验与交流 计算机与信息技术 ·91·数字水印技术及应用龚翱 李曾妍 陈刚(湖南人文科技学院 计算机科学系,湖南 娄底 417000)摘 要 随着网络技术和媒体信息数字化的飞速发展,数字水印技术成为目前研究的热点。
本文介绍了数字水印的概念、原理和研究现状,并分析了常见的数字水印算法,最后讨论数字水印的应用领域,并展望了未来发展及研究方向。
关键词 数字水印;信息隐藏;算法1 引言随着信息时代的到来,特别是Internet 的普及,数字技术飞速发展。
数字媒体如图像、视频、音频等作品因其复制、篡改、非法传播非常容易,使得版权保护和信息安全问题日益突出。
为了保护知识产权,以往采用数据加密的方法,只有掌握密钥的授权用户才能解密并使用数据,但这种方法只能控制用户存取数据,与数据本身无关。
因此,人们又提出了数字信息产品版权保护和数据安全维护的新技术——数字水印(Digital Watermarking)。
2 数字水印的概念及原理数字水印技术是一种信息隐藏技术,它是在数字图像、音频和视频等数字作品中嵌入秘密信息,以便保护数字作品的版权、证明产品的真实可靠性、跟踪盗版行为或者提供产品的附加信息,其中的秘密信息可以是版权标志、用户序列号或者是产品相关信息。
一般,该秘密信息需要经过适当变换再嵌入到数字作品中,通常称变换后的秘密信息为数字水印[1]。
数字水印技术以其特定的优势,成为目前的一个研究热点,得到越来越广泛发展和应用。
图1 水印的嵌入、提取过程一个完整的数字水印系统应包含:水印的嵌入和水印的提取或检测。
水印嵌入算法利用对称密钥或公开密钥实现把水印嵌入到原始载体信息中,得到隐秘载体。
水印检测或提取算法利用相应的密钥从隐蔽载体中检测或恢复出水印,没有解密密钥,攻击者很难从隐秘载体中发现和修改水印。
水印的嵌入和提取如图1所示。
3 数字水印的主要特性(1)不可感知性。
也称隐蔽性,数字作品嵌入数字水印后,不会引起质量明显的下降,也不容易被察觉,即使采用统计的方法也不能提取或确定水印的存在。
小波变换的数字水印算法及其matlab实现1. 概述数字水印技术是信息安全领域的重要研究方向之一,在数字水印技术中,小波变换被广泛应用于数字图像的隐写和水印嵌入。
小波变换是一种时域和频域综合分析的数学工具,它具有多分辨率分析的特点,因此适用于数字水印的隐藏和提取。
2. 小波变换的数字水印算法小波变换的数字水印算法包括水印嵌入和水印提取两个部分。
在水印嵌入部分,首先将原始图像进行小波变换,然后将水印信息嵌入到小波系数中,最后进行逆小波变换得到带有水印的图像。
在水印提取部分,首先对带有水印的图像进行小波变换,然后提取小波系数中的水印信息,最后还原出原始的水印信息。
3. 小波变换的数字水印算法的matlab实现假设我们要对一幅图像进行数字水印嵌入和提取,我们可以使用matlab工具进行实现。
我们可以利用matlab中的小波变换函数对图像进行小波变换,得到小波系数。
我们可以将水印信息以一定的规则嵌入到小波系数中,得到带有水印的小波系数。
利用matlab中的逆小波变换函数将带有水印的小波系数还原成具有水印的图像。
在水印提取部分,我们同样可以利用matlab中的小波变换函数对带有水印的图像进行小波变换,得到小波系数,然后提取出小波系数中的水印信息,最后还原出原始的水印信息。
4. 结论小波变换的数字水印算法是一种具有较高安全性和鲁棒性的数字水印算法,它广泛应用于数字图像的隐写和水印嵌入中。
利用matlab工具实现小波变换的数字水印算法不仅可以加快开发的速度,还可以便于算法的验证和分析。
希望本文可以对小波变换的数字水印算法及其matlab实现有所帮助。
5. 参考文献[1] Cox I J, Miller M L, Bloom J A, et al. Digital Watermarking: Princi-ples Practices. Morgan Kaufmann,2001.[2] 刘昆, 李煜,王裴,等.一种新的基于小波变换的数字图像不可见水印算法[J].计算机应用与软件,2005,22(6):42-44.数字水印技术是一种在数字媒体中隐藏信息的技术,旨在保护作品的版权、完整性、认证及追踪,同时又不会对原始媒体造成太大的修改,因此在当前的数字化信息传输和存储领域具有广泛的应用。
数字水印算法综述作者:吴婷婷李星野倪时金来源:《电子世界》2012年第18期【摘要】针对数字水印技术研究的背景、目前研究成果、存在问题以及今后发展方向做了一个综述。
首先简要介绍数字水印的特点和应用,其次对提升小波的基本原理进行了阐述,同时对现有文献中的数字水印算法做了深入的分析对比,最后展望了数字水印的研究方向和应用前景。
【关键词】数字水印;提升小波变换;人类视觉系统(HVS);奇异值分解(SVD)1.引言随着信息媒体的数字化,特别是计算机网络的迅速发展和广泛应用,为信息的存取和传递提供了极大的便利,同时也提高了信息表达的效率和准确性。
但是随之而来的数字作品的版权问题和信息安全问题越来越引起人们的关注。
数字水印(digital watermarking)技术[1]作为新兴的信息安全技术,为解决数字作品的侵权问题提供了一个有效的解决途径。
近年来,数字水印技术研究取得了很大进展,并陆续提出了一系列优秀的水印嵌入算法。
进而关于彩色图像的水印嵌入算法、多功能水印嵌入算法等也相继出现,以及数字水印与其它技术相结合的研究也取得了一些重要成果。
这使得数字水印技术的应用越来越广泛而受到人们的关注。
2.数字水印技术2.1 数字水印概念数字水印技术[2]是利用数字作品中普遍存在的冗余数据与随机性,将数字、序列号、文字、图像标志等版权信息嵌入到被保护的数字作品本身中,通过检测和提取水印,可以标识和验证出数字化图像、视频和音频作品的作者、拥有者、发行者或授权消费者的信息,还可以追溯数字作品的非法传播,从而起到版权保护、秘密通信、数据文件的真伪鉴别和产品标识等作用。
水印技术中,隐蔽性和鲁棒性是最基本的要求,影响隐蔽性和鲁棒性的因素主要是水印的结构和嵌入方法。
水印容量与鲁棒性构成了一对基本矛盾,即嵌入的水印信息越多,算法的鲁棒性越差。
2.2 应用数字水印主要在以下几个领域[3]:(1)版权保护(2)篡改提示(3)票据、证件防伪(4)隐蔽通信2.3 数字水印典型算法数字水印算法大致可以分为两类:空域算法和变换域算法。
一.数字水印数字水印技术数字水印技术(Digital Watermark):技术是将一些标识信息(即数字水印)直接嵌入数字载体(包括多媒体、文档、软件等)当中,但不影响原载体的使用价值,也不容易被人的知觉系统(如视觉或听觉系统)觉察或注意到。
目前主要有两类数字水印,一类是空间数字水印,另一类是频率数字水印。
空间数字水印的典型代表是最低有效位(LSB)算法,其原理是通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
频率数字水印的典型代表是扩展频谱算法,其原理是通过时频分析,根据扩展频谱特性,在数字图像的频率域上选择那些对视觉最敏感的部分,使修改后的系数隐含数字水印的信息。
可视密码技术二.可视密码技术:可视密码技术是Naor和Shamir于1994年首次提出的,其主要特点是恢复秘密图像时不需要任何复杂的密码学计算,而是以人的视觉即可将秘密图像辨别出来。
其做法是产生n张不具有任何意义的胶片,任取其中t张胶片叠合在一起即可还原出隐藏在其中的秘密信息。
其后,人们又对该方案进行了改进和发展。
主要的改进办法办法有:使产生的n张胶片都有一定的意义,这样做更具有迷惑性;改进了相关集合的造方法;将针对黑白图像的可视秘密共享扩展到基于灰度和彩色图像的可视秘密共享。
三.数字水印(Digital Watermark或称Steganography)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。
数字水印是信息隐藏技术的一个重要研究方向。
数字水印技术源于开放的网络环境下保护多媒体版权的新型技术,它可验证数字产品的版权拥有者、识别销售商、购买者或提供关于数字产品内容的其他附加信息,并将这些信息以人眼不可见的形式嵌入在数字图像或视频序列中,用于确认数字产品的所有权和跟踪侵权行为。
除此之外,它在证据篡改鉴定,数字的分级访问,数据产品的跟踪和检测,商业视频广播和因特网数字媒体的服务付费,电子商务的认证鉴定,商务活动中的杜撰防伪等方面也具有十分广阔的应用前景。
图像处理中的数字水印算法综述数字水印是一种通过在数字媒体中嵌入特定信息进行认证、保护和传播的技术。
在图像处理领域,数字水印算法广泛应用于版权保护、信息隐藏、内容认证以及图像溯源等方面。
本文将综述图像处理中的数字水印算法及其应用,并重点介绍几种常用的数字水印算法。
一、数字水印的概念与分类数字水印是在数字媒体中嵌入的一段特定的信息,不可感知地存储于原始图像中。
数字水印按照水印的类型可以分为可见水印和不可见水印。
可见水印是在原始图像中直观可见的标识,常用于版权保护和身份认证。
而不可见水印则是在原始图像中隐藏的隐蔽信息,常用于图像溯源与内容认证。
二、数字水印算法的综述1. 空域水印算法空域水印算法是将水印嵌入到原始图像的像素值中。
其中,最简单的一种方法是最低有效位(LSB)算法,它将水印信息嵌入到原始图像中的最低比特位中,对图像的质量影响较小。
此外,还有基于差值扩展和扩频技术的空域水印算法,能够提高水印嵌入的容量和鲁棒性。
2. 变换域水印算法变换域水印算法是将水印嵌入到原始图像的变换域中,如离散余弦变换(DCT)和离散小波变换(DWT)。
其中,基于DCT的数字水印算法通过选择合适的频域系数进行嵌入操作,提高了水印的鲁棒性和不可感知性。
基于DWT的数字水印算法则通过将水印嵌入到图像的高频细节中,提高了水印的抗压缩性能。
3. 频域水印算法频域水印算法是将水印嵌入到原始图像的频域中,如离散傅里叶变换(DFT)和离散小波变换(DWT)。
这些算法通过在频域对图像进行分析,选择合适的频域系数进行水印嵌入,以提高水印的鲁棒性和不可感知性。
4. 扩频水印算法扩频水印算法是一种基于码片序列的数字水印算法,其原理是将水印信息通过扩频技术嵌入到原始图像中。
这种算法具有较好的鲁棒性和抗攻击性能,常用于版权保护和内容认证。
三、数字水印算法的应用1. 版权保护数字水印技术提供了一种有效的版权保护手段。
通过将版权信息嵌入到数字媒体中,可以在未经授权的情况下追踪盗版行为,并为原始创作者提供法律保护。
close allclear all;% save start timestart_time=cputime;% read in the cover objectfile_name='E:\Phd\My Paper\Second paper -- Experiment\Experiment\Cover and Secretlmage\le na.bmp:[cover_object,map]=imread(file _n ame);% read in the secret imagefile_name='E:\Phd\My Paper\Second paper -- Experiment\Experiment\Cover and SecretImage\hat.bmp';[secret,map1]=imread(file_ name);secret仁secret;% convert to double for n ormalizatio n, the n back aga insecret=double(secret);secret=fix(secret./2); %rounds the eleme nts of A toward zero, result ing in an array of in tegers secret=uin t8(secret);% determ ine size of cover objectMc=size(cover_object,1); %HeightNc=size(cover_object,2); %Width% determ ine size of secret objectMm=size(secret,1); %HeightNm=size(secret,2); %Width% title the secret object out to cover object size to gen erate watermarkfor ii = 1:Mcfor jj = 1:Ncif (secret(ii,jj)>75)watermark(ii,jj)=255;elsewatermark(ii,jj)=0;endendend% now we set the lsb of cover_object(ii,jj) to the value of watermark(ii,jj)watermarked_image=cover_object;for ii = 1:Mcfor jj = 1:Ncif (watermark(ii,jj)==O)watermarked 」m age(ii,jj)=bitset(watermarked 」m age(ii,jj),1,0);%Set bit certa in positi onelsewatermarked 」m age(ii,jj)=bitset(watermarked 」m age(ii,jj),1,1); %Set bit certa in positi onendendend% write the watermarked image out to a fileimwrite(watermarked 」mage,'lsb_watermarked.bmp','bmp');%==================================Extracti on===========================% determ ine size of watermarked imageMw=size(watermarked 」mage,1); %HeightNw=size(watermarked 」mage,2); %Width% use lsb of watermarked image to recover watermarkfor ii = 1:Mwfor jj = 1:NwRecoveryWatermark(ii,jj)=bitget(watermarked 」m age(ii,jj),1);endend% scale the recovered watermarkRecoveryWatermark=2*double(RecoveryWatermark);%====================================================================%===========================SharpAttack================= SharpedWatermarkImage = watermarked 」m age;H = fspecial('u nsharp',0.001); %the alpha from 0.005 to 0.1 20 numberssharpImage = imfilter(SharpedWatermarklmage,H,'replicate');figure(6);colormap(gray(256));imshow(sharpImage); atattitle('sharp Image');imwrite(sharplmage, gray(256), 'sharplmage.bmp');% determ ine size of watermarked imageMSw=size(sharpImage,1); %HeightNSw=size(sharplmage,2); %Width% use lsb of watermarked image to recover watermarkfor ii = 1:MSwfor jj = 1:NSwRecoverySharpWatermark(ii,jj)=bitget(abs(sharplmage(ii,jj)),1);endend% scale the recovered watermarkRecoverySharpWatermark=2*double(RecoverySharpWatermark);psn rSharp = psn r(RecoveryWatermark, RecoverySharpWatermark)figure(7);colormap(gray(256));imshow(RecoverySharpWatermark,[])title('RecoverySharpWatermark');%====================================================================%%%===========================Gaussia n Blur=================Gaussia nBlurWatermarkedlmage = watermarked_image;H = fspecial('gaussian',size(GaussianBlurWatermarkedlmage),0.035); %the alpha from 0.005 to 0.1 20 numbersGaussia nBlurlmage = imfilter(Gaussia nBlurWatermarkedlmage,H,'replicate');figure(8);colormap(gray(256));imshow(Gaussia nBlurlmage』)title('Gaussia n Blur Image');imwrite(Gaussia nBlurlmage, gray(256), 'Gaussia nBlurlmage.bmp');% determ ine size of watermarked imageMSw=size(Gaussia nBlurlmage,1); %HeightNSw=size(Gaussia nBlurlmage,2); %Width% use lsb of watermarked image to recover watermarkfor ii = 1:MSwfor jj = 1:NSwRecoveryGaussia nBlurWatermark(ii,jj)=bitget(Gaussia nBlurlmage(ii,jj),1);end end% scale the recovered watermarkRecoveryGaussia nBlurWatermark=2*double(RecoveryGaussia nBlurWatermark);psn rBlur = psn r(RecoveryWatermark, RecoveryGaussia nBlurWatermark) figure(9);colormap(gray(256));imshow(RecoveryGaussia nBlurWatermark』) title('RecoveryGaussia nWatermark');% %% %===========================================================% %HistogramhistogramWatermarkedlmage = watermarked」m age;histogramimage = histeq(watermarked_image,10); % from 10 to 200 figure(10);colormap(gray(256));image(histogramimage);title('histogramimage Image');imwrite(histogramimage, gray(256), 'histogramimage.bmp');MSw=size(histogramlmage,1); %HeightNSw=size(histogramlmage,2); %Width% use lsb of watermarked image to recover watermarkfor ii = 1:MSwfor jj = 1:NSwRecoveryHistogramWatermarked(ii,jj)=bitget(histogramlmage(ii,jj),1); endend% scale the recovered watermarkRecoveryHistogramWatermarked=2*double(RecoveryHistogramWatermarked); psn rHistorgram = psn r(RecoveryWatermark, RecoveryHistogramWatermarked) figure(11);colormap(gray(256));imshow(RecoveryHistogramWatermarked,[]) title('RecoveryHistogramWatermarked');%%%% %==========================Noise=============================NoiseWatermarked = watermarked_image;Noiseimage = imno ise(NoiseWatermarked,'gaussia n',0.001);figure(12);colormap(gray(256));imshow(NoiseImage);title(' no iselmage');imwrite(Noiselmage, gray(256), 'no iselmage.bmp');MSw=size(Noiselmage,1); %HeightNSw=size(Noiselmage,2); %Width% use lsb of watermarked image to recover watermarkfor ii = 1:MSwfor jj = 1:NSwRecoveryNoiseWatermarked(ii,jj)=bitget(Noiselmage(ii,jj),1);endend% scale the recovered watermarkRecoveryNoiseWatermarked=2*double(RecoveryNoiseWatermarked);psn rNoise = psn r(RecoveryWatermark, RecoveryNoiseWatermarked)figure(13);colormap(gray(256));imshow(RecoveryNoiseWatermarked,[]) title('RecoveryNoiseWatermarked'); %%===================================================================% display process ing time elapsed_time=cputime-start_time,。
课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 数字水印算法设计初始条件:MATLAB软件平台、版权图像、水印图像要求完成的主要任务:1.设计任务学习掌握一种数字水印算法,选择两幅图像分别作为版权图像和水印图像,采用水印嵌入算法成生含水印图像。
采用水印提取算法,提取出嵌入水印。
并对水印算法的鲁棒性进行测试。
2.设计要求①掌握一种数字水印的嵌入与提取算法原理。
②编写出水印嵌入算法的matlab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明。
③编写出水印提取算法matlab程序,并给出水印原图和提取出的水印图像,并对水印的提取效果进行分析说明。
④进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。
测定提取前后水印的峰值信噪比(PSNR)和相关性(NC)时间安排:第18-19周。
指导教师签名:年月日系主任签名:年月日目录摘要 (1)1数字水印概念 (2)1.1 数字水印分类 (2)1.2 数字水印特点 (2)2 数字水印算法 (3)2.1 数字水印基本模型 (3)2.2 常见数字水印算法 (4)2.2.1 空间域算法 (4)2.2.2 变换域算法 (4)2.2.3 其他算法 (5)2.3离散余弦变换(DCT)算法 (5)2.3.1 DCT变换公式 (5)2.3.2 二维DCT的性质 (6)2.4 离散余弦变换的水印嵌入 (7)2.5离散余弦变换的水印提取 (8)3 数字水印算法的MATLAB编程 (9)3.1数字水印的嵌入 (9)3.2数字水印的提取 (11)4 数字水印的抗攻击实验 (12)4.1噪声攻击 (13)4.2滤波攻击 (14)4.3压缩攻击 (15)4.4剪切攻击 (16)4.5旋转攻击 (17)5 小结与体会 (18)参考文献 (18)附录 (19)摘要数字水印技术近年来得到了较大的发展,基于变换域的水印技术是目前研究的热点。
数字水印是利用数字作品中普遍存在的冗余数据和随机性,把标识版权的水印信息嵌入到数字作品中,从而可以起到保护数字作品的版权或其完整性的一种技术。
课程设计任务书学生姓名: 专业班级:指导教师:工作单位:武汉理工大学题目: 数字水印算法设计初始条件:(1)Matlab应用软件的基本知识以及基本操作技能。
(2)高等数学、信号与系统等基础运算知识。
要求完成的主要任务:(1)掌握一种数字水印的嵌入与提取算法原理。
(2)编写出水印嵌入算法的matlab程序,并给出水印嵌入前后的版权图像,并对嵌入效果进行分析说明。
(3)编写出水印提取算法matlab程序,并给出水印原图和提取出的水印图像,并对水印的提取效果进行分析说明。
(4)进行水印的抗攻击实验,噪声攻击,剪切攻击,缩放攻击,压缩攻击等。
测定提取前后水印的峰值信噪比(PSNR)和相关性(NC)。
时间安排:6月20日到6月27日理论设计与仿真6月28日到7月3日撰写报告7月4日答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (2)ABSTRACT (3)1.数字水印技术概述 (4)1.1 数字水印技术提出的背景 (4)1.2 数字水印的基本特点 (4)1.3 数字水印的应用 (5)1.MATLAB软件的介绍 (7)2.1 MATLAB研究数字水印的优点 (7)2.2 MATLAB函数介绍 (8)3.傅立叶域水印理论基础 (10)3.1 傅立叶变换简述 (10)3.1.1 一维离散傅立叶变换DFT (10)3.1.2 快速傅立叶变换 FFT (11)3.1.3 二维离散傅立叶变换 (12)3.2 傅立叶变换性质 (13)3.2.1 空间域平移性 (13)3.2.2 旋转不变性 (14)3.2.3 比例缩放性 (14)4.基于傅立叶域相关性检测的半盲水印 (15)4.1 引言 (15)4.2 基于Arnold 变换的图像置乱算法 (15)4.3 水印算法 (17)4.3.1 算法原理 (17)4.3.2 算法的matlab 实现步骤 (20)4.4 算法的matlab 实现及结果分析 (21)5.总结与心得体会 (26)6.参考文献 (27)附录 (28)摘要随着计算机及网络技术的飞速发展,数字作品传播和拷贝变得越来越方便,同时使得数字作品的信息安全保护和版权保护也成为迫切需要解决的实际问题。
数字水印是近年来在信息安全领域兴起的保护知识产权的新方法。
它通过在原始数据中嵌入一些重要信息为受到版权保护的媒体数据的完整性和所有权归属提供完全和可靠的证据,以此达到防止数字产品的盗版和篡改目的。
本文提出了一种基于傅立叶域的有意义水印算法,主要做了如下工作:(1)为了提高水印的安全性,在嵌入水印之前首先对水印信息利用Arnold变换进行置乱。
(2)为了提高传统相关性检测方法的准确率,嵌入水印时采用嵌入两个不相关伪随机序列的方法,大大提高了检测的准确率。
(3)低频部分集中图像的大部分能量,修改这里容易引起失真,所以本文采用修改中高频部分的方法进行嵌入。
(4)本文水印的检测方法为半盲检测,只需要原始水印的部分信息的参与,所以具有重要的现实意义。
关键字:数字水印;傅立叶变换;图像处理;信息安全ABSTRACTAlong with the computer and network technology rapid development, and dissemination of digital works have become increasingly easy to copy, simultaneously allow digital works to protect the security of information and copyright protection has become an urgent need to address the real issues. In recent years, digital watermarking is in the field of information security emerging intellectual property protection method. It passed in the original data embedded in some important information protected by copyright for the data integrity of media ownership and attribution mention for complete and reliable evidence, thereby to prevent the piracy of digital products and tampering with purpose.This paper presents a Fourier-domain based on the meaningful watermarking algorithm, mainly in the following:(1) To enhance the security watermark, before the watermark embedded watermark on the first use of Arnold transform scrambling.(2) To improve the traditional detection methods related to the accuracy, used embedded watermark embedding two are not related to the pseudo-random sequence, greatly improve the detection accuracy.(3) low-frequency part of the image most concentrated energy; changes here easily lead to distortion, therefore this paper, revising part of the high-frequency method for embedding.(4) This watermark detection method for the semi-blind testing, only part of the original image information in, therefore have important practical significance.Key Words:Digital watermarking;Fourier transform;Image processing;Information security1.数字水印技术概述1.1 数字水印技术提出的背景二十一世纪是数字时代,通信技术的迅速发展和计算机网络的普遍运用,使人们可以通过互联网收发信息,可以随时上传自己创作的数字图象、音乐、视频等作品,可以进行学术交流。
然而,也正是由于网络的这种便捷性、传播迅速的优点使其很容易被非法拷贝,导致数字产品的版权、完整性、有效性得不到保证,严重损害了创作者的利益。
而一些具有特殊意义的数字信息,如涉及司法诉讼、政府机要等信息,更是遭到了不法分子地恶意攻击和随意篡改等,这一系列问题给当今科学家带来了巨大挑战。
基于以上类似问题,数字水印技术可以说是信息时代的特有产物,是一种可以在开放网络环境下保护版权和认证来源及保障信息完整性的新型技术,在音频、图像、视频制品中迅速得到广泛的研究和发展。
1.2 数字水印的基本特点数字水印是加在数字图象、音频或视频中的微弱信号,这个信号是人们能够建立产品所有权、辨认购买者或提供数字产品的一些额外信息。
具体说来,它们都具有以下共同的特征:1. 不可感知性对于数字水印的嵌入,应该对观察者没有视觉障碍,理想情况应该是水印图像与原始图像没有丝毫差别。
2. 鲁棒性鲁棒性是指一个数字水印能够承受攻击的能力,一般来说数字水印方法是针对特定的攻击进行设计。
3. 安全性水印技术的安全性是其最重要的特性,由于它的商业性,其算法必须公开,算法的安全性完全取决于密钥,而不对算法进行保密。
4. 计算复杂度不同应用中,对于水印的嵌入算法和提取算法的计算复杂度要求是不同的,复杂度直接与水印系统的实时性相关。
5. 水印容量水印容量是指载体数据字中可嵌入水印信息位的多少,可以从几兆到几个比特不等。
1.3 数字水印的应用数字水印是以不可感知的方式嵌入到数字信息中的,总体来说它有以下应用:数字产品产权保护这是数字水印最广泛的应用,将秘密的数字信号嵌入到有价值的数字文件中,这些数字信号是产权的标识,在不破坏数字文件的情况下不能被盗版者出去,起到了保护产权的作用。
1. 数据库标识有时一些文件中提示数据的标识信息往往比文件本身更重要或者一些音像文件需要将说明注释(如字幕等)与音像本身结合起来,这就可以通过数字水印技术加以解决。
2. 文件内容鉴定水印技术在鉴定数据建立者和鉴别数据内容有着特殊的运用,目的是检测数据是否被修改过或是否经过特殊的处理。
3. 系统升级日常生活中常常涉及到旧装系统升级情况,这可以通过将“增强层”嵌入到所发送的数据中来给传统的信号发射系统升级。
4. 商务交易中的票据防伪随着高质量图像输入输出设备的发展,使得货币、支票以及其他票据的伪造变得更加容易。
目前,美国、日本以及荷兰都已开始研究用于票据防伪的数字水印技术。
5. 媒体侦破这一运用的目的是提取对原始信号进行处理过的信息。
例如,鉴定方法可以发现一幅图像被篡改过,但无法发现是怎样篡改的。
媒体侦破技术就可以指出图像的哪部分被篡改了,指出被插入到原图像中的新对象等等。
2.MATLAB软件的介绍MATLAB语言是一种非常强大的工程语言,被广泛应用于包括信号与图象处理、控制系统设计、通信、系统仿真等诸多领域。
2.1 MATLAB研究数字水印的优点MATLAB语言有不同于其他高级语言特点,它在研究数字水印有如下特点:1. 编程效率高MATLAB语言是用数学形式的语言编写程序,用MATLAB编写程序犹如在演算纸上排列公式与求解问题。
由于它编写简单,所以编程效率高,易学易懂。
2.用户使用方便与其他语言相比,MATLAB能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误甚至语意错误,从而加快了用户编写、修改和调试程序的速度,便于操作。
3. 扩充能力强,交互性好MATLAB语言库函数丰富,用户还可以根据自己的需要方便地建立和扩充新的库函数,提高MATLAB使用效率和扩充功能。