基于-小波-变换的数字水印-matlab的-实现_第1页
基于-小波-变换的数字水印-matlab的-实现_第2页
基于-小波-变换的数字水印-matlab的-实现_第3页
基于-小波-变换的数字水印-matlab的-实现_第4页
基于-小波-变换的数字水印-matlab的-实现_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE111实用文档基于小波变换的数字水印与matlab的实现摘要:通过对数字水印的原理和算法的分析,了解信息隐藏的实现手段与效果。在信息加载和提取过程中,突破传统的加密技术,用更具专业性的检测手段来保护专属的信息产权。本文利用了水印良好的鲁棒性和不可感知性,致力于对图像的处理,通过实验与测试证实了数字水印可以达到理想的效果,并且运用恰当的算法可以更加简化操作的复杂性。在此之外,数字水印还可以应用于声音,视频等领域。其技术手段的实现的更加完善化会带来其更加广阔的应用前景。关键字:数字水印;信息隐藏;MATLAB;水印检测与提取;JPEG压缩;1数字水印技术简介1.1数字水印的发展背景随着数字技术和Internet网络的发展,各种形式的多媒体数字作品(图像、视频、音频等)纷纷以网络形式发表,然而数字作品的便利性和不安全性是并存的,它可以低成本、高速度地被复制和传播,而这些特性也容易被盗版者所利用。因而,采用多种手段对数字作品进行保护、对侵权者进行惩罚己经成为十分迫切的工作。数字水印技术的研究就是在这种应用要求下迅速发展起来的。数字水印(digitalwatermarking)技术也称为数字指纹技术,它将具有特定意义的水印标记不可感知地嵌入到被保护的数字产品中,在产生版权纠纷时,通过相应的算法提取该水印,用以证明作者对该数字产品的所有权,并可作为鉴证、起诉非法侵权的证据。数字水印技术基本上应当满足隐蔽性、安全性、鲁棒性和水印容量等几个方面的要求。研究数字水印技术的最初目的是用于保护数字产品的版权,但随着研究的进一步深入,它在信息安全保护领域的应用越来越广泛,并在广播检测、图像认证、盗版跟踪、数字签名、交易水印、拷贝控制、标题与注释等各个领域产生了许多新的用途。数字水印从正式提出到现在虽然时间不长,但它与传统的密码学相比有明显的优越性,为解决版权保护和内容完整性认证、来源认证、篡改认证、网上发行、用户跟踪等一系列问题提供了一个崭新的研究方向,因此它在数字产品的知识产权保护、商务交易中的票据防伪、声像数据的隐藏标识和篡改提示、隐蔽通信及其对抗等方面具有十分广阔的应用前景。1.2数字水印的特点(1)鲁棒性:所谓鲁棒性是指在经历多种无意或有意的信号处理过程后,数字水印仍能保持完整性或仍能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、数/模与模/数转换、重采样、剪切、位移、尺度变化以及有损压缩编码等(2)隐蔽性:在数字作品中嵌入数字水印不会引起明显的降质,且不易被察觉。(3)隐藏位置的安全性:水印信息隐藏于数据而非文件头中,文件格式的变换不应导致水印数据的丢失。在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。从主观上讲,理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术的应用,因为实际应用一般只偏重其中的一个方面。如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。但对保证数据安全来说,情况恰恰相反,此时,隐藏数据量的要求居于次要地位,各种保密的数据随时面临着被盗取和被纂改的危险,所以鲁棒性是十分重要的。1.3数字水印技术的基本原理数字水印的基本原理是将作为标识数据的水印信息嵌入到被保护的宿主数据中,使得水印在宿主数据中不可感知并且足够安全。通常的水印算法包括三个基本方面:水印的生成、嵌入和提取,并会涉及到水印的选择、水印的验证、基于视觉特性的水印等几项关键技术。(1)水印的生成水印信号分为无意义水印信号和有意义水印信号两种。无意义水印信号的产生通常基于伪随机数发生器或混沌系统,产生的水印信号往往需要进一步的变换以适应水印嵌入算法的需要。有意义水印信号包括二值图像、灰度图像和彩色图像等。有意义的图像可以直接作为水印嵌入到载体数据中,但是为了增强水印的安全性,一般需要先对水印进行加密预处理,处理的方法包括使用实随机序列进行扩频、对水印信号进行位分解、利用图像的置乱对水印进行预处理等。数字水印生成过程的一般流程如图1所示。载体图像原始水印信息密钥水印生成算法生成水印信息载体图像原始水印信息密钥水印生成算法生成水印信息(2)水印的嵌入水印的嵌入从数字通信的角度看,可以理解为在一个宽带的信道上用扩频通信技术一个窄带信号,会涉及到嵌入的方法、嵌入的位置、嵌入的信息量等问题。数字水印嵌入过程的一般流程图如图2所示。信息分析(选择嵌入点)原始图像水印信息信息分析(选择嵌入点)原始图像水印信息水印嵌入算法含水印图像(3)水印的提取与检测水印的提取与检测是一个在有噪信道中弱信号的检测问题,最终目的在于判断水印信号是否存在或把水印提取出来。在对提取的水印和原始的水印进行判断和检测的过程中,可以通过输出一个0—1决策来判断水印有无。水印提取与检测过程的一般流程图如图3所示。水印化信息密钥水印化信息密钥原始信息原始水印信息水印检测算法水印提取算法提取出水印判断水印是否存在图3数字水印提取检测过程一般流程图1.4数字水印技术的划分(1)按特性划分数字水印的特性可以将数字水印分为鲁棒数字水印和脆弱数字水印两类。(2)按水印所附载的媒体划分按水印所附载的媒体,我们可以将数字水印划分为图像水印、音频水印、视频水印、文本水印以及用于三维网格模型的网格水印等。。(3)按检测过程划分按水印的检测过程可以将数字水印划分为明文水印和盲水印。(4)按内容划分按数字水印的内容可以将水印划分为有意义水印和无意义水印。(5)按用途划分不同的应用需求造就了不同的水印技术。按水印的用途,我们可以将数字水印划分为票据防伪水印、版权保护水印、篡改提示水印和隐蔽标识水印。(6)按水印隐藏的位置划分按数字水印的隐藏位置,我们可以将其划分为时(空)域数字水印、频域数字水印、时/频域数字水印和时间/尺度域数字水印。1.5数字水印算法的分类数字水印算法可以分为空间域数字水印算法和变换域数字水印算法两大类。空间域数字水印算法就是通过改变某些像素的灰度将要隐藏的信息嵌入到其中,把数字水印直接加载到数据上。这种方法具有算法简单、容易实现、信息隐藏量大和计算速度快等优点,并且许多算法在提取水印和验证水印存在时都不需要原始图像,但通常因为抵抗图像的几何形变、噪声和图像压缩的能力较差而具有较差的鲁棒性。空间域数字水印的经典算法包括:(1)LSB算法(最低有效位法),(2)Patchwork方法;(3)纹理映射编码方法;(4)文档结构微调方法等。变换域数字水印算法是当前数字水印技术领域研究的热点。它是基于图像的变换利用一个信号可以掩盖另一个较弱的信号这种频率掩盖现象在频域变换中嵌入水印,这些常见变换包括:(1)离散余弦变换(DCT);(2)小波变换(WT);(3)傅氏变换(Fr或FFr);(4)哈达马变换等。1.6影响水印性能的因素(1)嵌入信息的数量:嵌入的信息量越多,水印的鲁棒性就越低(2)水印嵌入强度:在水印嵌入强度和水印可感知性之间有一个均衡。高鲁棒性需要更强的嵌入,这反过来增大了水印的可感知性。(3)数据的大小和种类:通常数据的尺寸大小对嵌入水印的鲁棒性有直接的影响。(4)秘密信息(如密钥):尽管秘密信息的数量对水印的可感知性,鲁棒性没有直接的影响,但在系统安全性方面充当了重要的角色。密钥空间要足够大,从而使穷举搜索攻击不可行。考虑这些上述因素,评价水印方法必须在各种不同的测试图像之中进行测试。此外,为了得到在统计上有效的结果,必须使用不同的密钥和改变水印的强度来对水印系统进行评价。1.7数字水印技术的攻击问题(1)简单攻击通常是指普通的图像处理,例如对图像线性和非线性的滤波、有损压缩、图像增强、量化、加噪等。简单攻击不能识别或分离水印,只可以使水印削弱或删除。(2)同步攻击这种攻击通常指几何攻击,如旋转、剪切、平移、二次抽样、缩放等操作。这种几何攻击实际上并没有去除图像中的水印,但它改变了提取水印所必须的位置信息,使得水印虽然存在,但不能被提取或检测。(3)伪造攻击这种攻击指试图去伪造原始数据或伪造水印后的数据。(4)去除水印攻击这种攻击是指通过分析水印后的数据,估计出原始数据或水印数据,从而将水印从水印后的数据中分离出来。通常采用的方法有:共谋攻击、去噪、特殊的非线性滤波等。2小波变换概述2.1小波变换“小波”就是小区域、长度有限、均值为0的波形。所谓“小”是指它具有衰减性;而称之为“波”则是指它的波动性,其振幅正负相间的震荡形式。与Fourier变换相比,小波变换是时间(空间)频率的局部化分析,它通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节小波变换分成两大类:离散小波变换(DWT)和连续小波变换(CWT)。两者的主要区别在于,连续变换在所有可能的缩放和平移上操作,而离散变换采用所有缩放和平移值的特定子集。从图像处理的角度看,小波变换存在以下几个优点:(1)小波分解可以覆盖整个频域(提供了一个数学上完备的描述)(2)小波变换通过选取合适的滤波器,可以极大的减小或去除所提取得不同特征之间的相关性(3)小波变换具有“变焦”特性,在低频段可用高频率分辨率和低时间分辨率(宽分析窗口),在高频段,可用低频率分辨率和高时间分辨率(窄分析窗口)(4)小波变换实现上有快速算法(Mallat小波分解算法)2.2二维小波变换算法讨论当二维空间是可分离的情况下,很容易把一维多分辨率分析推广到二维。说得具体点就是,二维小波分解算法是:一幅数字化的图像经常可以用一个2维矩阵A表示(经过某种变换),然后行进行一维小波分解,得到新的矩阵B,B由A的水平方向低频,水平方向高频部分组成,再对列进行一位小波分解,得到新的矩阵C,C由B的垂直方向低频,垂直方向高频部分组成,即C由四部分组成:LL(原图像的水平分量低频,垂直方向低频部分),HL(原图像的水平分量高频,垂直方向低频部分),LH(原图像的水平分量低频,垂直方向高频部分),HH(原图像的水平分量高频,垂直方向高频部分)。为了形象地描绘二维小波分解后的分量,可以见下图:LL2HL2HL1LH2HH2LH1HH1图3-1图像二维小波分解后的分量其中,LL代表近似部分,HL代表水平细节,LH代表垂直细节,HH代表对角细节。对于二维小波重构,可以按照分解的逆过程来实现:利用一维小波重构算法先对列重构,再对行重构,就能得到原图像。2.3常见的小波变换水印算法(1)Barni算法此算法是由MauroBarni,FrancoBartolini,VitoCapellini,AlessandroLippi和AlessandroPiva提出的,算法使用了一般的线性叠加方法。水印长度由原图像的大小决定,如果原图像的大小为M×N,则Nw=3*M/2*N/2,这里Nw表示水印的长度。选用Daubechies-6作为小波基,对原图像进行4级小波分解。只有第一分解级的细节信号嵌入水印,而分析信号只用于计算视觉遮蔽效果值。(2)Kundur算法此算法是由KundurDeepa和HatzinakosDimitrios提出的,水印嵌入使用了图像融合技术。水印大小与待嵌图像的大小相差2M比例因子,其大小为2*Nw×2*Mw,嵌入前将水印进行一级小波分解。原图像进行L级小波分解,L的大小被限制小于或等于M,水印图案进行一级小波分解。将各级子带分为互不重叠的大小为Nw×Mw的子块,根据事先设定的百分比随机选择某些子块,被选中子块内对应的小波系数嵌入水印。2.4基于小波变换的数字水印算法的优势随着新一代图像压缩标准JPEG2000的提出,小波变换越来越受到重视。作为一种全新的时间一尺度分析方法,它在数字图像处理领域取得了很好的应用效果,在数字水印研究领域出现了许多优秀的小波变换算法。小波变换相对于DFT和DCT有诸如良好的时间频率局部性、多尺度变换、较小的计算复杂度等独特的优点。基于小波变换的数字水印具有突出的抗滤波和压缩攻击的能力,同时保留了空域特性,而且一幅图像小波分解后所得到的子带和人类的视觉系统(HVS)模型相符合,提高了算法的鲁棒性。3在MATABL中实现图像的水印算法3.1MATABL的应用MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB初始界面3.2MATLAB的特点总的来说,该软件有三大特点:(1)功能强大。具有数值计算和符号计算、计算结果和编程可视化、数学和文字统一处理、离线和在线计算等功能;(2)界面友善、语言自然。MATLAB以复数处理作为计算单元,指令表达与标准教科书的数学表达式相近;在MATLAB中,基本的计算单元是矩阵,复数或实数则可以理解为1×1的矩阵。MATLAB的很多运算都是直接针对矩阵的,所以表示起来也就特别方便(3.)开放性强。该公司本身就推出了30多个应用工具箱,而世界上超过200家公司开发出与MATLAB兼容的第三方产品,这些产品向用户提供更多的工具箱、模块集、与其他商业产品的接口等。MATLAB的这些特点使它获得了对应用学科(特别是边缘学科和交*学科)的极强适应力,并很快成为应用学科计算机辅助分析、设计、教学,乃至科技文字处理不可缺少的基础软件。

3.3用Matlab研究数字水印的优点1、丰富的小波函数和处理函数MATLAB集成了DCT、DWT等函数有丰富的小波函数和处理函数,其中有小波工具箱,里面有许多现成的小波函数,如,单尺度小波分解函数dwt2;多尺度二维小波分解函数wavedec2;单尺度小波重构函数idwt2;多尺度二维小波重构函数waverec2;提取二维小波分解高频系数函数deccoef2;提取二维小波分解低频系数函数appcoef2;二维小波消噪函数wdencmp等等。这不仅方便究人员,而且使源程序简洁明了、易实现。2、强大的数学运算功能。图像数字水印技术是针对图像进行研究的,MATLAB强大的数值运算功能是其优于其他数学应用软件的重要原因,其中矩阵运算更是MATLAB语言的核心,且表达自然,直接,能够方便、高效地实现大量矩阵运算。3、提供了图像处理工具箱、小波分析工具箱、数字信号处理工具箱。例如可以调用wfilters来获得指定小波的分解和综合滤波器系数;同时可很好的应用于数字图像处理技术、数字信号处理等多学科。4、MATLAB与VisualC++具有良好的接口。有matcom和com(comppoentobjectmodel)等多种接口方法的实现,可以混合编程,在VC中调用MATLAB的函数,将MATLAB生成的.M的文件翻译成C++语言,方便更多用户理解和使用。4.基于小波变换域的数字水印的实现4.1基于小波变换域的数字水印的简述小波分析的基本思想是:从一个具有正则性,局部性和振荡性的基本小波函数中心出发,经伸缩和平移得到一函数族:(4.1)由此得到的函数族离散化后可构成L2(R)空间的规范正交基并以之去表示或逼近信号,理论研究表明,从逼近观点上讲,只用很少小波系数就可以得到许多不同图像的精确逼近。因此,小波作为变换基底是很好的选择。(1)连续小波变换(CWT)具有有限能量的函数f(t)(即,(f)∈L2(R))的小波变换定义为以函数族(4.2)为积分核的积分变换。(R)(4.3)其中,a是尺度参数,b是定位参数,%≯(f)称为小波。上式可描述为一带通滤波器输出。(2)离散小波变换(DWT)式4.1可通过对其伸缩标度因子a和平衡因子b取样而离散化。令其中,则由式可得(4.4)4.2基于离散小波变换和人类视觉系统(HVS)的水印的实例4.2.1离散小波变换小波变换一般采用二维离散小波变换,即对二维图像信号在水平和垂直方向做一维离散小波变换的结果。从信号处理角度来看,先在水平方向对图像分别进行低通和高通滤波,并作下采样,再在竖起方向做同样的操作。离散小波变换定义为m,nZ(4.5)4.2.2算法描述这里所讨论的水印嵌入策略对信号处理操作(如有所压缩、滤波)和通用的几何变换(如裁剪、放缩、平移和旋转等)是鲁棒的,同时其算法需要提供原始图像和原始水印。水印本身按照高斯分布(N(0,1)生成的随机数序列,由一系列实数组成X=(X1:X2,⋯,Xn),水印的长度为n.定义NN大小的原始图像(宿主图像)为C,对原始图像进行变化域编码(二维离散小波变换DWT),加入水印后利用二维离散小波逆变换(IDWT)生成加入水印的图像。4.2.3水印嵌入算法水印嵌入的具体过程如下:第一步:将原始图像和水印信息以Double类型的形式读入。第二步:将原始彩色图像分解为3个基色分量Cr,Cg,Cb,分别对该三个基色分量用Haar小波基进行二级小波分解。第三步:将数字水印同样分解为Cwr,Cwg,Cwb三个基色分量,分别对其进行一级小波分解。第四步:将数字水印的三基色分解系数分别对应嵌入到原始彩色图像的三基色分解系数中,嵌入公式为CR(G,B)A2(i,j)=CR(G,B)A2(i,j)+r(g,b)*WR(G,B)A1(i,j)CR(G,B)H1(i,j)=CR(G,B)H1(i,j)+r(g,b)*WR(G,B)H1(i,j)CR(G,B)V1(i,j)=CR(G,B)V1(i,j)+r(g,b)*WR(G,B)V1(i,j)CR(G,B)D1(i,j)=CR(G,B)D1(i,j)+r(g,b)*WR(G,B)D1(i,j)其中,CRA2(i,j)表示嵌入水印前原始图像的红色分量经小波两层分解后对应区域坐标(i,j)处的小波系数,WRA1(i,j)表示水印信息的红色分量经一级小波分解后的低频区域中坐标(i,j)处的小波系数,r表示红色分量加权系数,CRA2(i,j)表示嵌入水印信息后的红色分量的小波系数,其余类推。且R,G,B三种基色分量加权系数满足r∶g∶b=2∶1∶4的关系。第五步:重构并显示嵌入水印后的图像。4.2.4水印提取算法本算法的水印提取过程是水印嵌入的逆过程,需要用到原始彩色图像和加入了彩色数字水印的图像。水印提取算法将原始图像和数字水印图像分别作两层小波分解,水印的低频系数从原始图像和数字水印图像的第二层分解的低频系数中得到,高频系数从原始图像和数字水印图像的第一层分解的高频系数中得到。实现过程中按嵌入时相同的过程将原始图像的小波系数相应地从水印图像的小波系数中减去。最后,将得到的数字水印的小波系数做小波反变换,即获得提取出的水印图像。4.3人眼的视觉特性(HVS)及其在水印技术中的应用人是图像欣赏的主体,图像质量的好坏都是由人来进行评判的,因此,几乎所有的数字图像处理技术都紧紧围绕着人类的视觉系统(HVS)来进行的,如JPEG图像压缩技术就是根据人类视觉系统的特性来确定量化步长的。近十年来,人们对图像处理技术有了更深刻的认识,尤其是把它与人类视觉系统的某些特性相结合,使图像处理技术取得了突飞猛进的发展,以人类视觉特性为核心的JPEG压缩技术就是一个很好的例子,它不但使图像压缩比得到了大大的提高,而且使压缩后的图像具有很好的视觉效果,现在已经有人将人类视觉特性应用到数字水印技术中来,使数字水印技术的研究取得了可喜的成就。水印的嵌入过程可看成是在强背景(原始图像)上叠加一个弱信号(水印),只要信号的强度低于HVS的最小可察觉误差JND(JustNoticeableDifference),HVS就感觉不到水印信号的存在,这就为水印的嵌入和检测工作提供了一个很好的启示。HVS特性和水印技术的很好结合使得水印对常见的各种攻击具有更好的鲁棒性。Christine和Podilchuk等在DCT域和小波变换域内进行水印的嵌入和提取时,利用JND模型控制了嵌入水印信号的最大强度,最大可能地避免了对图像视觉质量的破坏,这一方法显示出了很好的透明性和鲁棒性。4.3水印实验结果:在实验中,我先是做了水印的嵌入,水印的提取,最后对水印图像做了三次破坏,以检验破坏后的水印提取结果。首先,先任意找到两幅图片。一幅作为原始图像,另一幅作为水印。水印嵌入算法的功能就是利用离散小波变换算法(DWT)把水印图像嵌入原始图像中去,得到水印图像。注意:水印的大小是原始图像的四分之一,既长宽分别是原始图像的二分之一。(1)水印的嵌入现在,通过水印嵌入程序(存于MATBLE中的WORK文件夹),把水印嵌入到原始图像中去,得到水印图像。可见,水印嵌入到原始图像中后,所得到的水印图像和原始图像几乎是一样的,水印是看不出来的。由此可见,数字水印有良好的不可见性。程序运行结果为(图4-1、图4-2)图4-1原始图像和水印图4-2水印图像(2)水印的提取水印提取程序为嵌入的逆过程,运用了离散小波逆变换(IDWT)。调出水印提取程序(存于MATBLE中的WORK文件夹),把水印图像读取出来。运行程序,就可把水印图像中的水印信息提取出来。程序运行结果为(图4-3图4-4)图4-3原始图像和水印图像图4-4提取的水印可见,水印图像中的水印信息能被很好地提取出来。(3)水印图像的攻击1.对水印图像进行JPEC有损压缩用Photoshop图像处理软件对水印图像进行JPEC压缩,得到压缩后的图像(图4-9)图4-5JPEG有损压缩后水印图像下面用水印检测程序,检测压缩后水印图像中的水印。程序运行结果为(图4-6、图4-7)图4-6原始图像和水印图像图4-7压缩后提取的水印提取的水印信息,经过压缩有一定程度的失真。2.对水印图像进行局部剪切用Photoshop图像处理软件对水印图像进行局部剪切,得到剪切后的图像(图4-8)图4-8剪切后的水印图像下面用水印检测程序,检测剪切后的水印图像中的水印信息,程序运行结果为(图4-9、图4-10)图4-9原始图像和水印图像图4-10剪切提取的水印可见,剪切后的水印信息仍能被检测出来。3.对水印图像进行减淡处理。用Photoshop图像处理软件对水印图像进行减淡处理,得到减淡后的水印图像(图4-11)图4-11减淡后的图像下面用水印检测程序,检测减淡后的水印图像的水印信息,程序运行结果为(图4-12图4-13)图4-12原始图像和水印图像图4-13减淡后提取的水印可见,水印信息能被检测出来。由于水印图像被减淡了,相应地水印信息也被减淡了。总结系统实验表明,通过离散小波变换可以实现数字水印的嵌入,提取与检测,同时通过不同的攻击方法对水印图像加以处理,测试了在保护信息产权的稳定性和可靠性。在此次的设计中,我查阅了大量的资料并进行收集,尝试用不同的方法去实现水印技术,独立的进行关于此方面的科学研究的考究,但是在学习和探索的过程中依然存在以下问题:对具体的水印算法的原理理解不够,导致在运用的过程中遇到困难。水印嵌入算法存有一定的缺陷,在嵌入后水印图像有一定的失真,而且水印的不可见性也达不到很高的水准。水印的抗攻击能力较差,在对图像进行减淡处理后,提取的水印有一定程度的失真。只用了一种方法去实现水印,未能创新出更好的方法,在此后的研究中多更多的注重。参考文献:[1]成礼智,王红霞,罗永.小波的理论与应用[M].科学出版社2004.10.[2]何风华.小波分析在信号消噪中的应用[J].兵工自动化2002.6[3]杨义先.数字水印基础教程[M].北京人民邮电出版社,2007[4]刘振华,尹萍.息隐藏技术及其应用〔M].北京科学出版社,2002.[5]李春茹.基于小波变换和HVS的数字图像水印技术[D].西安电子科技大学,2004.[6]孙兆林.Matlab6.x图像处理〔M].北京清华大学出版社,2004.[7]袁渊,窦文华.一种基于小波变换域的数字图像公开水印方案〔J].计算机工程与应用,2004.[8]郭磊,郭宝龙.小波域数字图像水印算法的研究[J].计算机工程与应用2002,1.[9]黄华,齐春,李俊.一种新的丈本数字水印标记策略和检测方法[M].西安交通大学,2002.6.[10]E.Koch,J.Zhao,TovardsRobustandHiddenImageCopyrightLabeling,Proc.Of1995IEEEWorkshopNonlinearSignalandImageProcessing,1995:20—22.[11]LouD-C,LiuJ-L.Faultresilientandcompressiontolerantdigitalsignatureforimageauthentication1EEETrans.onConsumerElectronics,2000,46(1).英文摘要StudyofdigitalwatermarkonwavelettransformandtherealizationonMatlabAbstract:Basedontheprincipleanddigitalwatermarkingalgorithmofhidinginformationanalysis,understandtheimplementationmethodsandeffects.Intheinformationloadingandextractionprocess,thebreakthroughtraditionencryptiontechnology,withmoreprofessionaldetectionmeanstoprotectproprietaryinformationproperty.Thispaperusedthewatermarkgoodrobustnessandnotreceptivity,dedicatedtotheimageprocessing,ontheoutside,digitalwatermarkingalsocanbeusedinsound,video,etc.TherealizationofthetechnicalmeansmoreWanShanHuawillbringthemmorebroadapplicationprospect.KEYWord:Digitalwatermarking;informationhidden;watermarkextractionanddetection;JPEGcompression;matlab致谢感谢在我这美好的大学生涯里遇见如此优秀的导师们,不仅在学业上给我莫大的先导作用,生活中也是给予了关怀,让我的大学生涯充满了温馨与快乐。在做此篇设计时,我的导师更是对我有很大的帮助作用,耐心的教导我如何去实现,如何去操作,尽力的在帮助我完善好设计,让我在毕业之际能够做到更好,对于她的宽容和理解,我非常感谢,同时感谢参加论文评审和答辩的各位老师,感谢他们在百忙之中抽出时间对论文进行指导和帮助。附录A:1.水印嵌入程序:functiondwtglclearall;clc;%保存开始时间start_time=cputime;figure(1);%读出原始图像subplot(1,2,1);input=imread('image.bmp');imshow(input);title('原始图像');%读出水印subplot(1,2,2);water=imread('water2.bmp');imshow(water,[]);title('水印');%三色分离input=double(input);water=double(water);inputr=input(:,:,1);waterr=water(:,:,1);inputg=input(:,:,2);waterg=water(:,:,2);inputb=double(input(:,:,3));waterb=double(water(:,:,3));%系数r大,增加鲁棒性,r小增加透明性r=0.06;%水印R的分解[Cwr,Swr]=WAVEDEC2(waterr,1,'haar');%图像R的分解[Cr,Sr]=WAVEDEC2(inputr,2,'haar');%水印的嵌入%Cr(1:size(Cwr,2)/16)=...%Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);k=0;whilek<=size(Cr,2)/size(Cwr,2)-1Cr(1+size(Cr,2)/4+k*size(Cwr,2)/4:size(Cr,2)/4+...(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/4+...k*size(Cwr,2)/4:size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...r*Cwr(1+size(Cwr,2)/4:size(Cwr,2)/2);Cr(1+size(Cr,2)/2+k*size(Cwr,2)/4:size(Cr,2)/2+...(k+1)*size(Cwr,2)/4)=Cr(1+size(Cr,2)/2+...k*size(Cwr,2)/4:size(Cr,2)/2+(k+1)*size(Cwr,2)/4)+...r*Cwr(1+size(Cwr,2)/2:3*size(Cwr,2)/4);Cr(1+3*size(Cr,2)/4+k*size(Cwr,2)/4:3*size(Cr,2)/4+...(k+1)*size(Cwr,2)/4)=Cr(1+3*size(Cr,2)/4+...k*size(Cwr,2)/4:3*size(Cr,2)/4+(k+1)*size(Cwr,2)/4)+...r*Cwr(1+3*size(Cwr,2)/4:size(Cwr,2));k=k+1;end;Cr(1:size(Cwr,2)/4)=Cr(1:size(Cwr,2)/4)+r*Cwr(1:size(Cwr,2)/4);g=0.03%水印G的分解[Cwg,Swg]=WAVEDEC2(waterg,1,'haar');%图像G的分解[Cg,Sg]=WAVEDEC2(inputg,2,'haar');%水印的嵌入%Cg(1:size(Cwg,2)/16)=...%Cg(1:size(Cwg,2)/16)+g*Cwg(1:size(Cwg,2)/16);k=0;whilek<=size(Cg,2)/size(Cwg,2)-1Cg(1+size(Cg,2)/4+k*size(Cwg,2)/4:size(Cg,2)/4+...(k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/4+...k*size(Cwg,2)/4:size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...g*Cwg(1+size(Cwg,2)/4:size(Cwg,2)/2);Cg(1+size(Cg,2)/2+k*size(Cwg,2)/4:size(Cg,2)/2+...(k+1)*size(Cwg,2)/4)=Cg(1+size(Cg,2)/2+...k*size(Cwg,2)/4:size(Cg,2)/2+(k+1)*size(Cwg,2)/4)+...g*Cwg(1+size(Cwg,2)/2:3*size(Cwg,2)/4);Cg(1+3*size(Cg,2)/4+k*size(Cwg,2)/4:3*size(Cg,2)/4+...(k+1)*size(Cwg,2)/4)=Cg(1+3*size(Cg,2)/4+...k*size(Cwg,2)/4:3*size(Cg,2)/4+(k+1)*size(Cwg,2)/4)+...g*Cwg(1+3*size(Cwg,2)/4:size(Cwg,2));k=k+1;end;Cg(1:size(Cwg,2)/4)=Cg(1:size(Cwg,2)/4)+g*Cwg(1:size(Cwg,2)/4);b=0.12;%水印B的分解[Cwb,Swb]=WAVEDEC2(waterb,1,'haar');%图像B的分解[Cb,Sb]=WAVEDEC2(inputb,2,'haar');%水印的嵌入%Cb(1:size(Cwb,2)/16)=...%Cb(1:size(Cwb,2)/16)+b*Cwb(1:size(Cwb,2)/16);k=0;whilek<=size(Cb,2)/size(Cwb,2)-1Cb(1+size(Cb,2)/4+k*size(Cwb,2)/4:size(Cb,2)/4+...(k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/4+...k*size(Cwb,2)/4:size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...b*Cwb(1+size(Cwb,2)/4:size(Cwb,2)/2);Cb(1+size(Cb,2)/2+k*size(Cwb,2)/4:size(Cb,2)/2+...(k+1)*size(Cwb,2)/4)=Cb(1+size(Cb,2)/2+...k*size(Cwb,2)/4:size(Cb,2)/2+(k+1)*size(Cwb,2)/4)+...b*Cwb(1+size(Cwb,2)/2:3*size(Cwb,2)/4);Cb(1+3*size(Cb,2)/4+k*size(Cwr,2)/4:3*size(Cb,2)/4+...(k+1)*size(Cwr,2)/4)=Cb(1+3*size(Cb,2)/4+...k*size(Cwb,2)/4:3*size(Cb,2)/4+(k+1)*size(Cwb,2)/4)+...b*Cwb(1+3*size(Cwb,2)/4:size(Cwb,2));k=k+1;end;Cb(1:size(Cwb,2)/4)=Cb(1:size(Cwb,2)/4)+b*Cwb(1:size(Cwb,2)/4);%图像的重构inputr=WAVEREC2(Cr,Sr,'haar');inputg=WAVEREC2(Cg,Sg,'haar');inputb=WAVEREC2(Cb,Sb,'haar');%三色的叠加temp=size(inputr);pic=zeros(temp(1),temp(2),3);fori=1:temp(1);forj=1:temp(2);pic(i,j,1)=inputr(i,j);pic(i,j,2)=inputg(i,j);pic(i,j,3)=inputb(i,j);endendoutput=uint8(round(pic));%转化为uint8watermarked_image_uint8=uint8(output);imwrite(watermarked_image_uint8,'watermarked_lena.bmp','bmp');%显示时间elapsed_time=cputime-start_time,%输出结果figure(2);imshow(watermarked_image_uint8);title('水印图像');2.水印提取程序:clearall;clc;%保存开始时间start_time=cputimefigure(1);%读出原始图像subplot(1,2,1);input=imread('image.bmp');imshow(input);title('原始图像');%读出水印图像subplot(1,2,2);watermarked_image=imread('watermarked.bmp');imshow(watermarked_image,[]);title('水印图像');%三色分离input=double(input);watermarked_image=double(watermarked_image);inputr=input(:,:,1);watermarked_imager=watermarked_image(:,:,1);inputg=input(:,:,2);watermarked_imageg=watermarked_image(:,:,2);inputb=input(:,:,3);watermarked_imageb=watermarked_image(:,:,3);%%水印图像R的分解[Cwr,Swr]=WAVEDEC2(watermarked_imager,2,'haar');%图像R的分解[Cr,Sr]=WAVEDEC2(inputr,2,'haar');%水印图像G的分解[Cwg,Swg]=WAVEDEC2(watermarked_imageg,2,'haar');%图像G的分解[Cg,Sg]=WAVEDEC2(inputg,2,'haar');%水印图像B的分解[Cwb,Swb]=WAVEDEC2(watermarked_imageb,2,'haar');%图像B的分解[Cb,Sb]=WAVEDEC2(inputb,2,'haar');%%提取水印的小波系数r=0.06fork=0:3whr(k+1,:)=Cwr(1+size(Cwr,2)/4+k*size(Cwr,2)/16:...size(Cwr,2)/4+(k+1)*size(Cwr,2)/16)-...Cr(1+size(Cr,2)/4+k*size(Cr,2)/16:...size(Cr,2)/4+(k+1)*size(Cr,2)/16);wvr(k+1,:)=Cwr(1+size(Cwr,2)/2+k*size(Cwr,2)/16:...size(Cwr,2)/2+(k+1)*size(Cwr,2)/16)-...Cr(1+size(Cr,2)/2+k*size(Cr,2)/16:...size(Cr,2)/2+(k+1)*size(Cr,2)/16);wdr(k+1,:)=Cwr(1+3*size(Cwr,2)/4+k*size(Cwr,2)/16:...3*size(Cwr,2)/4+(k+1)*size(Cwr,2)/16)-...Cr(1+3*size(Cr,2)/4+k*size(Cr,2)/16:...3*size(Cr,2)/4+(k+1)*size(Cr,2)/16);endwhr=(whr(1,:)+whr(2,:)+whr(3,:)+whr(4,:))/(4*r);wvr=(wvr(1,:)+wvr(2,:)+wvr(3,:)+wvr(4,:))/(4*r);wdr=(wdr(1,:)+wdr(2,:)+wdr(3,:)+wdr(4,:))/(4*r);war=(Cwr(1:size(Cwr,2)/16)-Cr(1:size(Cr,2)/16))/r;g=0.03fork=0:3whg(k+1,:)=Cwg(1+size(Cwg,2)/4+k*size(Cwg,2)/16:...size(Cwg,2)/4+(k+1)*size(Cwg,2)/16)-Cg(1+...size(Cg,2)/4+k*size(Cg,2)/16:...size(Cg,2)/4+(k+1)*size(Cg,2)/16);wvg(k+1,:)=Cwg(1+size(Cwg,2)/2+k*size(Cwg,2)/16:...size(Cwg,2)/2+(k+1)*size(Cwg,2)/16)-Cg(1+...size(Cg,2)/2+k*size(Cg,2)/16:...size(Cg,2)/2+(k+1)*size(Cg,2)/16);wdg(k+1,:)=Cwg(1+3*size(Cwg,2)/4+k*size(Cwg,2)/16:...3*size(Cwg,2)/4+(k+1)*size(Cwg,2)/16)-...Cg(1+3*size(Cg,2)/4+k*size(Cg,2)/16:...3*size(Cg,2)/4+(k+1)*size(Cg,2)/16);endwhg=(whg(1,:)+whg(2,:)+whg(3,:)+whg(4,:))/(4*g);wvg=(wvg(1,:)+wvg(2,:)+wvg(3,:)+wvg(4,:))/(4*g);wdg=(wdg(1,:)+wdg(2,:)+wdg(3,:)+wdg(4))/(4*g);wag=(Cwg(1:size(Cwg,2)/16)-Cg(1:size(Cg,2)/16))/g;b=0.12;fork=0:3whb(k+1,:)=Cwb(1+size(Cwb,2)/4+k*size(Cwb,2)/16:...

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论