MATLAB制作数字水印...pdf
《MATLAB制作数字水印...pdf》由会员分享,可在线阅读,更多相关《MATLAB制作数字水印...pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1.数字水印 1.1 背景 二十一世纪是数字时代,通信技术的迅速发展和计算机网络的普遍运用,使人们可以通过互联网收发信息,可以随时上传自己创作的数字图象、音乐、视频等作品,可以进行学术交流。然而,也正是由于网络的这种便捷性、传播迅速的优点使其很容易被非法拷贝,导致数字产品的版权、完整性、有效性得不到保证,严重损害了创作者的利益。而一些具有特殊意义的数字信息,如涉及司法诉讼、政府机要等信息,更是遭到了不法分子地恶意攻击和随意篡改等,这一系列问题给当今科学家带来了巨大挑战。基于以上类似问题,数字水印技术可以说是信息时代的特有产物,是一种可以在开放网络环境下保护版权和认证来源及保障信息完整性的新型
2、技术,在音频、图像、视频制品中迅速得到广泛的研究和发展。1.2 基本特点 数字水印是加在数字图象、音频或视频中的微弱信号,这个信号是人们能够建立产品所有权、辨认购买者或提供数字产品的一些额外信息。具体说来,它们都具有以下共同的特征:1.不可感知性 对于数字水印的嵌入,应该对观察者没有视觉障碍,理想情况应该是水印图像与原始图像没有丝毫差别。2.鲁棒性 鲁棒性是指一个数字水印能够承受攻击的能力,一般来说数字水印方法是针对特定的攻击进行设计。3.安全性 水印技术的安全性是其最重要的特性,由于它的商业性,其算法必须公开,算法的安全性完全取决于密钥,而不对算法进行保密。4.计算复杂度 不同应用中,对于水
3、印的嵌入算法和提取算法的计算复杂度要求是不同的,复杂度直接与水印系统的实时性相关。5.水印容量 水印容量是指载体数据字中可嵌入水印信息位的多少,可以从几兆到几个比特不等。1.3 数字水印的应用1 数字水印是以不可感知的方式嵌入到数字信息中的,总体来说它有以下应用:数字产品产权保护 这是数字水印最广泛的应用,将秘密的数字信号嵌入到有价值的数字文件中,这些数字信号是产权的标识,在不破坏数字文件的情况下不能被盗版者出去,起到了保护产权的作用。1.数据库标识 有时一些文件中提示数据的标识信息往往比文件本身更重要或者一些音像文件需要将说明注释(如字幕等)与音像本身结合起来,这就可以通过数字水印技术加以解
4、决。2.文件内容鉴定 水印技术在鉴定数据建立者和鉴别数据内容有着特殊的运用,目的是检测数据是否被修改过或是否经过特殊的处理。3.系统升级 日常生活中常常涉及到旧装系统升级情况,这可以通过将“增强层”嵌入到所发送的数据中来给传统的信号发射系统升级。4.商务交易中的票据防伪 随着高质量图像输入输出设备的发展,使得货币、支票以及其他票据的伪造变得更加容易。目前,美国、日本以及荷兰都已开始研究用于票据防伪的数字水印技术。5.媒体侦破 这一运用的目的是提取对原始信号进行处理过的信息。例如,鉴定方法可以发现一幅图像被篡改过,但无法发现是怎样篡改的。媒体侦破技术就可以指出图像的哪部分被篡改了,指出被插入到原
5、图像中的新对象等等。1.4 数字水印技术的研究动态 随着多媒体技术和因特网技术的迅猛发展,一系列有关产权保护和信息安全的问题等亟待人们解决。数字水印技术便是二十世纪九十年代初出现的为解决这些问题的一门崭新的技术,也是近几十年来国内外专家和学者研究的一大热点。1.数字水印技术的研究现状 1)空间域数字水印研究 最初提出的数字水印嵌入方法是在空间域上实现的。1995 年,Btuyndoncky 等提出了一个基于空域分块的方法,通过改变均值来嵌入水印。1996 年,Patchwork 等人提出了一种算法(Patchwork 算法),该算法随机选取图像的 N 对像素点,通过增加其中一个点的亮度值而相应
6、降低另一个点的亮度来隐藏信息。1998 年,Darmstaedter 等人提出了一种新的空域水印算法,该算法是基于图像的 88 块的空间域分解进行的。不过上述的一些空域法普遍存在着可嵌入水印能量不好控制、鲁棒性差等缺点,现在已经很少有人使用,人们逐渐将水印的嵌入和检测转到频域上进行。2)频域数字水印研究 频域法大体有三类:DFT 域、DCT 域和 DWT 域。Ruanaidh 和 Pun 利用傅立叶域对全局性的旋转,平移和缩放变换具有不变性的特点,将水印嵌入到傅立叶域来达到对这些攻击的鲁棒性。1999 年,Hsu 和 Wu 等人提出了基于可视化模型的算法,该算法具有很强的鲁棒性。2000 年,
7、黄继武、易开样等人还提出了一种 DCT 域数字水印算法:首先把图像分成 88 的不重叠像素块,经过分块 DCT 变换后,得到有 DCT 系数组成的频率块,然后随机选取一些频率块,水印信号嵌入到由密钥控制选择的一些DCT 系数中。2004 年,王向阳等提出了一种 DCT 域自适应彩色图像二维数字水印算法,将灰度图像嵌入到原始彩色图像中。其实,很多国内外研究人员提出的其他 DCT 域数字水印算法,采用的多是基于 DCT 的 88 图像块。总的来说,基于图像特征的方法是探索性的,很难用目前现有的模型进行理论分析,限制了这种方法在需要有严格性能规定的实际商业中的应用。2.数字水印技术的前景与意义 从国
8、际、国内对数字水印研究现状和重视程度,可见数字水印对社会的应用是多么重要,所以它的研究前景是十分广阔的。数字水印技术是近十年来横跨信号处理、数字通信、密码学、计算机网络技术等多学科的新兴技术,具有潜在的应用市场和良好的应用前景。从研究意义来看,对它的研究具有重要的学术、经济和军事价值。一方面,它将促进多媒体技术、网络技术、通信技术、信号处理技术等多门新兴技术的有机结合,促进多媒体网络的进一步繁荣;另一方面,它将有助于多媒体信息版权保护及其冲突问题的解决。同时,它将促进隐蔽通信技术、信息安全技术的提高。2.数字水印技术概况 数字水印技术是利用数字产品普遍存在的冗余数据与随机性,将水印信息嵌入在数
9、字产品本身中,从而起到保护数字产品版权或者完整性的一种技术。2.1 数字水印的分类 数字水印技术根据不同的根据有不同的分类方法,一般有如下分类:依据其特性来分可以将数字水印分为鲁棒数字水印和脆弱水印两种。前一种要求嵌入的水印对常用的编辑处理或恶意攻击有一定的抵抗性;而后一种则要求对信息的改动有很强的敏感性。按水印的用途分类可将其分为版权水印、图像认证水印、隐藏标识水印、防止复印水印等。按检测的过程来划分数字水印有非盲水印系统和盲水印系统。一般而言,非盲水印的鲁棒性较强,而其应用受到存储成本的限制。不过,目前学术界研究的数字水印大多数是盲水印。根据内容划分水印又可以分为有意义水印和无意义水印。二
10、者区别在于前者本身也是个图像或者音频片段的编码;而后者却是一个序列号。按数字水印的隐藏的位置划分,数字水印又有空(时)域数字水印、频域数字水印、时/频域数字水印和时间/尺度域数字水印。2.2 数字水印系统的模型4 现在学术界对数字水印算法的理解都是将一些不易察觉的具有随机特性的数据嵌入到图像频域或空域的系数上。从信号处理的角度看,嵌入水印可以看成是在强背景下迭加一个弱信号,由于人类视觉系统的分辨率受到一定的限制,只要迭加的信号幅度不超过 HVS 的对比门限,人眼就无法感觉到信号的存在,所以可以通过对原始图像进行一定调整,在不影响视觉效果的情况下嵌入一些水印信息。数字水印系统的一般模型如图 1
11、所示:图 1 数字水印系统基本模型 水印嵌入器的输入量有三个:水印信号 M,宿主信号 S 和密钥 K。水印信号 M 是指原始水印(图像或一个数字序列)通过一定的方法经过调制将嵌入到宿主信号中的数字信号。宿主信号 S 是指被嵌入水印的信号(原始信号)。密钥 K 则指用于提高水印系统安全性的密码信息,它独立于宿主信号。密钥有私有密钥和公共密钥之分,前者指攻击者在明确了水印嵌入方法但又不知道密钥的情况下,水印不会被破坏或盗取;后者是指攻击者对宿主信号(如内容标识、语言字幕等)不感兴趣的情况下,密钥也就不存在保密性,可以作为公共密钥。2.3 数字水印算法 1.水印嵌入算法 数字水印技术涉及到了多门学科
12、:信号处理、数字通信、密码学、模式识别等,研究人员从各个角度对水印嵌入算法进行了研究。以下简要介绍几种典型的算法。1)空域水印嵌入算法 空域水印嵌入算法包括最低有效位算法 LSB、Patchwork 方法、纹理映射编码方法等。其中最低有效位算法 LSB 是指首先把一个密钥输入一个 m-序列发生器来产生水印信号,然后将其重新排列成 2 维水印信号,并按象素点逐一插入到原始图像象素值的最低位。由于水印信号被安排在了最底位上,是不可见的,基于同样的原因,可以轻易的被移去,所以它的鲁棒性很差。而 Patchwork 方法是一种基于统计的数字水印嵌入方法,是通过增加一个象素点的亮度值,再相应的减少另一个
13、象素点的亮度值来隐藏信息。纹理映射编码方法则是将数字信息隐藏于数字图象的任意纹理部分,该算法对于滤波、压缩和旋转等操作具有抵抗能力。2)变换域水印嵌入算法5 变换域中能量分布集中,有利于保证水印的不可见性,提高了水印的鲁棒性,所以这一算法得到了广泛的应用。图 2 是变换域水印算法的过程 图 2 变换域水印嵌入过程图 变换域算法中有一种典型的算法 DCT 域数字水印算法,该算法是通过对选定的 DCT 系数进行微小变换以满足特定的关系,来表示一个比特的信息。在水印信号提取时,则选取相同的 DCT 系数,并根据系数之间的关系抽取比特信息。其特点是数据改变幅度较小,且透明性好,但是其抵抗几何变换等攻击
14、的能力较弱。另外基于 DFT 和 DWT 算法与上述算法具有相似的原理。目前 DWT 域的算法还不多见,但小波域具有良好的空频分解特性,而且嵌入式零树小波编码将在新一代的压缩标准中被采用,迎合着国际压缩标准,小波域的水印算法具有良好的发展前景。2.水印检测算法 水印检测是上述嵌入过程的逆过程,以下详细介绍一下水印相关检测技术。待测试图像),(*yxf与原始图像的差为:8,0),(),(),(*),(10yxyxeyxfyxfyxekKk (2-1)对),(yxek进行域变换,再利用下式提取水印序列:alfavuFvuFxkki/),(/),((2-2)得到了可提取的待测试序列:10*0,wNk
15、kWiWNixW (2-3)待测序列中假设有 n 个数据值与原始水印序列W中对应位上的值不相同,则定义误码率:WNn (2-4)则有相关系数:)()()()(2*2*iWiWiWiWNNC (2-5)从而可以得到相关系数和误码率的关系:212wwNCNnNN (2-6)根据误码率的值可判断图像中是否含有水印信号,从而达到版权保护的目的。判定准则为:事先设定阈值T。若T,可以判定被测图像中含有水印W;否则,没有水印W。阈值T的选择要同时考虑虚警概率和漏警概率。虚警概率是指待测图像中不包含水印而检测器输出结果却表明含有水印的概率;漏警概率是指待测 图像中包含水印而检测器输出结果却表明不含有水印的概
16、率。T增大,则漏警概率降低而虚警概率提高;反之亦然。2若*W与W不相关,T的概率等于具有 Gaussian 分布的随机变量超过其均值 T 倍方差的概率。图 3 是典型的水印检测/提取系统7 图 3 水印检测提取系统 3.MATLAB 软件的介绍 MATLAB 语言是一种非常强大的工程语言,被广泛应用于包括信号与图象处理、控制系统设计、通信、系统仿真等诸多领域。3.1 MATLAB 研究数字水印的优点8 MATLAB 语言有不同于其他高级语言特点,它在研究数字水印有如下特点:1.编程效率高 MATLAB 语言是用数学形式的语言编写程序,用 MATLAB 编写程序犹如在演算纸上排列公式与求解问题。
17、由于它编写简单,所以编程效率高,易学易懂。2.用户使用方便 与其他语言相比,MATLAB 能在同一画面上进行灵活操作,快速排除输入程序中的书写错误、语法错误甚至语意错误,从而加快了用户编写、修改和调试程序的速度,便于操作。3.扩充能力强,交互性好 MATLAB 语言库函数丰富,用户还可以根据自己的需要方便地建立和扩充新的库函数,提高 MATLAB 使用效率和扩充功能。良好的交互性使程序员可以使用以前编写过的程序,减少重复性工作。4.移植性好,开放性好 MATLAB 是用 C 语言编写的,而 C 语言的可移植性很好。于是 MATLAB 可以很方便地移植到能运行 C 语言的操作平台上。5.语言简单
18、,内涵丰富 MATLAB 语言中最基本最重要的成分是函数,同一函数名,不同数目的输入变量及不同数目的输出变量,代表着不同的含义。这不仅使 MATLAB 的库函数功能更丰富,而且大大减少了需要的磁盘空间,使得 MATLAB 编写的 M 文件简单、短小而高效。6.方便的绘图功能 MATLAB 软件中有一系列绘图函数,在运用 MATLAB 软件时只需要调用不同的绘图函数,即可在图上标出图题、XY 轴标注。7.功能强大的工具箱是 MATLAB 的另一特色。MATLAB 工具箱中的信号处理、控制系统、神经网络、图象处理、鲁棒控制、非线性系统控制设计、系统辨识、最优化、模糊逻辑、小波、通信、统计(stat
19、istics等工具箱),这些工具箱给各个领域的研究和工程应用提供了有力的工具。8.MATLAB 的缺点 它和其他高级程序相比,程序的执行速度较慢。由于 MATLAB 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。3.2 MATLAB 函数介绍9 在研究水印技术时,我们处理的图像数据是二维信号,而声音是一维信号,所以在这里,我门只简单介绍与水印有关的函数。1.数据输入输出函数 imread()和 imwrite():可以读写 bmp,jpg/jpeg,tif/tiff,png,hdf,pcx,wxd 格式文件。读索引文件时,还可以得到相应的调色板数据。2.图象显示 i
20、mshow():显示一幅图像;imfinfo():可以得到读入图像的信息。如文件的大小、格式、格式版本号、图像的高度、宽度、颜色类型(真彩色,灰度图还是索引图)等。3.变换域函数 对信号采用不同的变换,是实现频域法水印的至关重要的一步,MATLAB 中的一维信号和二维信号分别提供了各种变换和逆变换函数。1)离散余弦变换(DCT)(1)dct(),dct2():分别实现一维信号和二维信号的 DCT(离散余弦变换);(2)idct(),idct2():分别实现一维信号和二维信号的 IDCT(逆离散余弦变换);2)离散傅立叶变换(DFT)(1)fft(),fft2():分别实现一维信号和二维信号的
21、DFT(离散傅立叶变换);(2)ifft(),ifft2():分别实现一维信号和二维信号的 IDFT(逆离散傅立叶变换);4.攻击函数 对算法进行攻击测试是对水印鲁棒性检测的一种重要手段,一个好的水印算法必须经过各种攻击测试才能对之做出客观的评价。MATLAB 中的许多函数可以直接用来做攻击测试:1)旋转:rotate()可以对图像进行任意角度的旋转;2)剪裁:imcrop()可以按精确定位的各点坐标进行剪裁;3)滤波:filter()和 filter2()可实现对一维信号和二维信号的滤波;4)加各种噪声:imnoise()可以对图像加入各种噪声,如白噪声、椒盐噪声等。4.基 于DCT 域 的
22、 数 字 水 印 技 术 离散余弦变换,简称 DCT,是一种实数域变换,其变换核为实数的余弦函数,计算速度较快,是一种近似最佳变换,很适合于做图象压缩和随机信号处理,它对常用的图象压缩有较强的鲁棒性。基于 DCT 域的数字水印算法,一般而言有两种算法。一种是直接对整幅图像进行 DCT 计算,选取合适频段的系数,嵌入水印。另一种是,首先将整幅图像分成块,对每一块分别进行 DCT 计算,在每一块中选取合适频段的系数,将水印信息分散嵌入到每一块所选取的 DCT 系数中。这种方法称为分块 DCT,这种方法非常适合于 88 的图像块 DCT 变换。目前,DCT 域的水印方法大多数是采用分块 DCT 方法
23、。4.1 二维DCT 概述3 一般而言,数字图象NnMmnmS0,0),(,其二维 DCT 变换用矩阵S表示,其定义式如下式所示:)2)12(cos()2)12(cos(),()()(2),(210101NljMkijiSlkNMlkSccMiNj (4-1)二维 IDCT 定义8如下:)2)12(cos()2)12(cos(),()()(2),(210101NljMkilkSlkNMjiSccMkNl (4-2)其中,1,.2,1,0,1,.2,1,0,NljMki 并且 1,.2,1,10,21)(1Mkkkc 1,.2,1,10,21)(2Nlllc (4-3)我们最常用到的是 88 分
24、块 DCT,也就是首先将大小为 MN 的图像分成64/)()8/()8/(NMNM的非重叠的大小为 88 的块,然后对每一块作 DCT。根据式(4-1)和式(4-2),88DCT 的定义如下:)16)12cos()16)12(cos(),(2)(2)(),(707021ljkijiSlklkSijcc (4-4)88IDCT 的定义如下:)16)12(cos()16)12(cos(),(2)(2)(),(707021ljkilkSlkjiSklcc (4-5)其中,,7,.2,1,0,lkji 并且 7,.2,1,10,21)(1kkkc 7,.2,1,10,21)(2lllc (4-6)4.
25、2 基于 DCT 域数字水印嵌入算法 DCT 域的水印嵌入过程,就是首先对宿主图像 S 进行分块 DCT 运算,选取出要嵌入的 DCT 系数 C,并且对宿主图像用 HVS 模型进行分析,得到感知系数掩蔽模板,用其来控制水印嵌入强度,再将编码后的水印信号 W,用一定方式嵌入到选好的系数中。用嵌入水印的系数替代原来位置的系数,再进行逆 DCT(Inverse Discrete Cosine Transform,IDCT)变换,就得到了含有水印的图像 X。DCT 域水印系统的水印嵌入过程框图如图 4 所示:图 4 DCT 域水印嵌入过程方框图 水印嵌入步骤如下:1.将宿主图像),.,2,1;,.,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 制作 数字 水印
限制150内