收藏 分享(赏)

基于Matlab的图像数字水印系统开发.doc

上传人:wo7103235 文档编号:6250432 上传时间:2019-04-03 格式:DOC 页数:40 大小:355.50KB
下载 相关 举报
基于Matlab的图像数字水印系统开发.doc_第1页
第1页 / 共40页
基于Matlab的图像数字水印系统开发.doc_第2页
第2页 / 共40页
基于Matlab的图像数字水印系统开发.doc_第3页
第3页 / 共40页
基于Matlab的图像数字水印系统开发.doc_第4页
第4页 / 共40页
基于Matlab的图像数字水印系统开发.doc_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、厦门大学本科毕业论文1/40基于 Matlab 的图像数字水印系统开发摘要 数字水印技术是指在宿主数字媒体(图像、声音、视频)等中嵌入一定量的数字信息,它不同于传统的数据加密技术,其目的不是限制对数据的存取,而是保证嵌入的数据不可侵犯和可恢复,是当前数字媒体版权保护的一种有效办法。由于数字水印技术涉及到的知识面很广,即使是专业人员有时也感到力不从心,那么如何选择一种有效的编程工具便成为一个亟待解决的问题。本文针对 MATLAB 与 Visual C+ 6.0 软件的各自编程优势,提出了一种利用 Matlab 语言来实现数字水印算法, VC 环境下开发应用程序界面,通过编译器将二者有效结合起来,

2、从而形成一个完整的图像数字水印系统。关键词 数字水印 Matlab Visual C+ 6.0 厦门大学本科毕业论文2/40program the digital watermark system with the matlab languageAbstract The digital watermark is an item of technology that inserting a few of numerical information to the host numeric media (such as picture, sound, video and so on). It is

3、different from the traditional data encryption technology, its goal is not to limit the data access, but to guarantee the inserted data inviolable and resumable, it is a method which is effective protect the media copyright. Because the digital watermark technology is very difficult, even if the pro

4、fessional also feels very difficulty to program sometimes. So how to choose a kind of effective programming tool becomes a problem which urgently awaits to be solved. This article contrapose the MATLAB and Visual C+ softwares superiority in respective programming, and advance a kind of method that i

5、mplements the digital watermark algorithm using the Matlab language. It develops the interface of application program, and uses the Matlab compiler to combine the above two kinds of compilers effectively, in order to forms a complete digital watermark demonstration system.keywords digital watermark

6、matlab visual c+ 6.0 厦门大学本科毕业论文3/40目 录第一章 引言 .7第二章 数字水印技术 .92.1 数字水印技术的简介 .92.2 数字水印产生的历史背景 .92.3 数字水印的基本特性 .102.4 数字水印技术的复杂性 .102.5 数字水印技术的常用算法 .10第三章 可实现数字水印技术的高效实用工具 MATLAB 123.1 MATLAB 简介 123.2 MATLAB 的语言特点 .123.3 用 MATLAB 实现数字水印算法的优点 .133.4 MATLAB 函数介绍 143.4.1 数据输入输出函数: .143.4.2 图像显示与声音播放: .143

7、.4.3 变换频函数: 143.4.4 攻击函数15第四章 数字水印系统模块设计与实现 164.1 数字水印系统的总体结构 .164.2 嵌入水印模块 .174.1.1 嵌入水印模块功能描述.174.1.2 嵌入水印的算法基本框图.174.1.3 嵌入水印算法的具体分析.174.3 水印提取模块 .194.3.1 水印提取的功能描述.19厦门大学本科毕业论文4/404.3.2 水印提取的算法框图.204.3.3 水印提取的算法具体分析.204.4 水印算法的稳健性验证模块: .214.4.1 水印算法稳健性验证的功能描述.214.4.2 添加噪音.214.4.3 滤波.224.4.4 剪切.2

8、24.4.5JPEG 压缩.224.4.6 旋转.23第五章 MATLAB 与 VC+6.0 的接口实现 255.1 集成的几种实现方法 .255.2 配置编译器 .265.2.1 对 MATLAB 的编译器进行配置 .265.2.2 对 VC 的编译器进行配置 .265.3 编写 M 函数文件 275.4 将 M 函数文件转化为脱离 MATLAB 环境的动态链接 .27第六章 总结与展望 29第七章 致 谢 30第八章 参考文献 31厦门大学本科毕业论文5/40CONTENTSCHAPTER 1 FOREWORD.7CHAPTER 2 DIGITAL WARTERMARKING92.1 IN

9、TRODUCTION .92.2 BACKGROUND .92.3 CHARACTERISTIC 102.4 COMPLEXITY.102.5 ARITHMETIC10CHAPTER 3 TOOL TO IMPLEMENT DIGITAL WARTERMARKINGMATLAB.123.1 1INTRODUCTION .123.2 MATLABS CHARACTERISTIC .123.3 ARITHMETICS EXCELLENCE .143.4 MATLABS FUNTION 1INTRODUCTION.143.4.1data in/out funtion143.4.2picture di

10、splay and voice play function .143.4.3 frequency conversion function.153.4.4 attack function.15CHAPTER 4 WARTERMARKING SYSTEMS DESIGN AND IMPLEMENTATION.174.1 STRUCTURE.174.2 INPLAY WARTERMARKING MODULE .174.1.1 DESCRIBE FOR FUNCTION .174.1.2 arithmetic PROCESS PICTURE 194.1.3 arithmetic 194.3 WARTE

11、RMARKING DISTILL MODULE.204.3.1 DESCRIBE FOR FUNCTION .20厦门大学本科毕业论文6/404.3.2 arithmetic PROCESS PICTURE 204.3.3 arithmetic 204.4 WARTERMARKING ARITHMETICS STABILIZATION VALIDATE MODULE 214.4.1 DESCRIBE FOR FUNCTION .214.4.2add noise 214.4.3 filter.224.4.4cut.224.4.5JPEG compress .224.5.6 circumgyrat

12、e .23CHAPTER 5 IMPLEMENT THE INTERFACE OF MATLAB AND VC255.1THE IMPLEMENT METHOD OF INTEGRATION 255.2CONFIGURE THE COMPILER265.2.1 configure the compiler of MATLAB265.2.2 configure the compiler of VC .265.3 WRITE THE FILE OF M FUNCTION .275.4 TRANSFER THE M FUNCTION FILE TO DYNAMIC LINK WHICH IS SEP

13、ARATED FROM MATLAB ENVIRONMENT27CHAPTER 6 CONCLUSIONS AND PERSPECTIVE.29CHAPTER 7 ACKNOWLEDGES30CHAPTER 8 REFERENCES.31厦门大学本科毕业论文7/40第一章 引言随着多媒体和网络技术的迅速发展与广泛应用,数字化媒体(如数字图像、数字视频和音频等)的传输和获取变得越来越便捷,一方面促进了人类信息的共享,推动了社会的进步,而另一方面由于其极易复制且复制后的媒体质量与原版几乎没有差异,因此也带来了数字多媒体的版权问题。数字水印技术作为版权保护的重要手段而得到了广泛的研究和应用。数字水印

14、技术不同于传统的数据加密,其目的不是限制对数据的存取,而是保证嵌入的数据不可侵犯和可恢复。其基本要求有:透明性,是指在宿主数字媒体中嵌入一定量的数 字水印信息后,不会引起原媒体明显的降质现象,隐藏数据不易察觉,即无法人为地看见或听见;鲁棒性,是指数字水印必须对施加于宿主媒体的各种变换操作(如 有损压缩、滤波和剪切等)具有免疫性,即水印信息不能因为施加于宿主媒体的某种变换操作而丢失;安全性,是指数字水印能够抵挡各种蓄意的攻击,很难被他人 所复制和伪造,只要其不知道控制该算法的密钥。作为传统加密系统的有效补充办法,从 1993 年 Caronni 正式提出数字水印到现在短短几年里,无论是在国内还是

15、在国外对数字水印的研究都引起了人们极大的关注。但数字水印技术的发展还很不成熟,应用也处于初级阶段。在我国,知识产权问题是一个敏感的话题,只有深入开展数字水印技术的研究,尽快制定我国的版权保护水印标准,才能使我们在未来可能的国际知识产权纠纷中取得主动权。那么掌握高效的工具,便成为一个必须解决的问题。本文就针对数字水印本身的特点,介绍了一种高效的实用工具MATLAB。MATLAB 是 Mathworks 公司推出的针对数值计算的交互式软件,是一套高效率的数值计算和可视化软件,具有极其强大的数值分析、矩阵运算、信号处理和图形显示功能;MATLAB 以其强大的数据处理能力和丰富的工具箱使得他的编程极为

16、简单,可大幅缩短应用程序开发周期,提高编程效率。但由于其为解释性执行语言,执行效率低、速度慢,不适应实时性较高场合。而 Visual C+是 Windows 平台下强大的应用程序开发环境,基于 VC 几乎可以开发从底层软件到直接面向用户的各个方面的软件 MATLAB是 Mathworks 公司推出的针对数值计算的交互式软件,是一套高效率的数值计算和可厦门大学本科毕业论文8/40视化软件,具有极其强大的数值分析、矩阵运算、信号处理和图形显示功能;MATLAB以其强大的数据处理能力和丰富的工具箱使得他的编程极为简单,可大幅缩短应用程序开发周期,提高编程效率。但由于其为解释性执行语言,执行效率低、速

17、度慢,不适应实时性较高场合。而 Visual C +是 Windows 平台下强大的应用程序开发环境,基于 VC 几乎可以开发从底层软件到直接面向用户的各个方面的软件。MATLAB 的应用程序界面开发功能远不如 VC 方便强大,VC 在工程计算方面则要比 MATLAB 繁琐得多。因此实现 MATLAB 与 VC 的混合编程,可以为科研工作和工程开发提供强大的技术支持。 要实现 VC、MATLAB 混合编程必须解决两方面的问题:一是接口的问题,包括VC 语言程序对 MATLAB 函数的调用及数据的互传;二是数据组织问题。厦门大学本科毕业论文9/40第二章 数字水印技术2.1 数字水印技术的简介数

18、字水印技术是指在宿主数字媒体(图像、声音、视频)等中嵌入一定量的数字信息,它不同于传统的数据加密技术,其目的不是限制对数据的存取,而是保证嵌入的数据不可侵犯和可恢复,是当前数字媒体版权保护的一种有效办法。2.2 数字水印产生的历史背景随着多媒体技术和数字传输的迅猛发展,因特网和 CD-ROM 上的数字媒体应用正在呈爆炸式的增长。数字信号处理和网络传输技术可以对数字媒体(数字声音、文本、图像和视频)的原版进行无限制的任意编辑、修改、拷贝和散布,造成数字媒体作品的原创者巨大的经济损失,并对数字媒体的安全权限提出了挑战,促使数字媒体的知识产权保护和信息安全问题日益突出,并已成为数字世界的一个非常重要

19、和紧迫的议题。目前的信息安全技术基本上以密码学理论为基础的,采用的传统方法是将文件加密成密文的密钥系统或公钥系统,提高加密、解密系统密级的方法是不断增加密钥的长度。这种将文件加密成密文的方法,在将密文解开后就失去了保密意义;加密的密文还容易引起许多好事者的兴趣,触发他们积极破译的激情。数字签名技术是一种较新的技术。已用于检验短信息的正式可靠性,虽然数字签名的标准已被许多国家采纳,可以通过私有密钥对数字产品进行签名,检测算法可用来检测产品的内容是否符合相应的签名,但因对多媒体中需要大量的签名,因而对多媒体保护的不适用也不方便。由此可见目前的保密方法在当今广泛应用的 Internet 多媒体信息安

20、全中难以起到全面保障的作用。数字水印技术是九十年代中期信息安全领域的一个新方向。它是指用信号处理的方法 在数字化的多媒体数据中嵌入隐蔽的水印标记,并使人的感知系统察觉厦门大学本科毕业论文10/40不出来,隐藏的水印标记只有通过专用的检测器才能提取出来的一种最新的多媒体保密技术。数字水印技术源于是在开放的网络环境下保护多媒体版权的新型技术,它可验证数字产品的版权拥有者、识别销售商、购买者或提供关于数字产品内容的其他附加信息,并将这些信息以人眼不可见的形式嵌入在数字图像或视频序列中,用于确认数字产品的所有权和跟踪侵权行为。除此之外,它在证据篡改鉴定,数据的分级访问,数据产品的跟踪和检测,商业视频广

21、播和因特网数字媒体的服务付费,电子商务的认证鉴定,商务活动中的票据防伪等方面也具有十分广阔的应用前景。自 93 年尤其是95/96 年以来引起工业界的浓厚兴趣,已成为国际上非常活跃的研究领域。2.3 数字水印的基本特性数字水印应用在数字作品的版权保护中必须满足以下基本条件:(1)图像在加入水印后不能改变图像的视觉效果,水印在通常的视觉条件下不可见。(2)加过水印的图像通过普通的图像处理技术和标准压缩后水印仍保持在图像之中并能被检测出来。(3)未经授权者不能伪造水印或检测出水印。(4)水印的图像在经受印刷、打印、扫描等模数和数模转换后仍能检测出水印。2.4 数字水印技术的复杂性数字水印技术涉及到

22、通信理论、编码理论、噪声理论、视听觉感知理论、扩频技术信号处理技术、数字图像处理技术、多媒体技术、模式识别技术、算法设计等理论,用到经典的 DFT(Discrete Fourier Transform) 、DCT(Discrete Cosine Transform)变换和近代最先进的数学工具- 小波(Wavelet) 。数字水印又是一个横跨计算机科学、密码学、数字、数字通信等多门学科,并与 Internet 的发展密切相关的交叉科学。数字水印的多学科性导致数字水印技术研究的难度和复杂性。所以,针对数字水印技术本身的跨学科特点,找出一种合适的编程工具,往往可以起到事半功倍的效果。厦门大学本科毕业

23、论文11/402.5 数字水印技术的常用算法数字水印算法一般可分为两种空域法和频域法。频域法加入数字水印的原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用的变换一般有DWT、DCT、DFT、WP 和分形。然后,对加入了水印信息的信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息的信号。频域法检测水印的原理是将原始信号与待检测信号同时进行变换域变换,比较两者的区别,进行嵌入水印的逆运算,得出水印信息。如果是可读的水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出的水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印的检测有两个结束点。频

24、域法有以下优点:(1)嵌入的水印信号能量可以分布到空域的所有像素上,有利于保证水印的不可见性;(2)视觉系统(HVS)的某些特性(如频率的掩蔽特性)可以更方便地结合到水印编码过程中;(3)频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内的水印编码。所以我们也以频域法为主介绍 MATLAB 在数字水印技术中的使用。DCT 法(Discreste Cosine Transformation)对原始信号做 DCT 变换的算法:利用随机数发生器产生标准正态序列作为水印信息对图像进行整体 DCT 变换后,选取除去 DC 系数之外部分较低频率系数叠加水印信息。对原始

25、信号分块后,再作 DCT 的算法:把图像进行 8*8 分块,将一个二进制序列作为水印放入 DCT 的中频区;有些学者则计算整个图像的 DCT,把一个实数序列嵌入DCT 的中频系数上。选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响;同时,尽量避免有损压缩对水印信息可能带来的损失。在我的数字水印演示系统中将采用这个算法。还有一种 DCT 方法就是把水印信息嵌入到高频系数上,但是采用这种方法,抗压缩性非常差。厦门大学本科毕业论文12/40第三章可实现数字水印技术的高效实用工具Matlab3.1 MATLAB 简介Matlab 是当前在国内外十分流行的工程设计和系统仿真软件包。它是 Ma

26、thWorks公司于 1982 年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一人方便的、界面友好的用户环境。Matlab 的推出得到了各个领域专家、学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础。由各个专家学者相继推出了 MATLAB 工具箱,其中的信号处理(signal processing)、控制系统(control system)、神经网络(neural network)、图像处理(image processing)、鲁棒控制(robust control)、非线性系统控制设计(nonlinear system contr

27、ol design)、系统辨识 (system identification)、最优化(optimization)、模糊逻辑(fuzzy logic)、小波 (wavelet)、通信(communication)、统计(statistics)等工具箱,这些工具箱给各个领域的研究和工程应用提供了有力的工具,借助于这些“巨人肩上的工具”,各个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地节省了时间。3.2 MATLAB 的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同 FORTRAN 和 C 等高级语言使人们摆脱了需要直接

28、对计算厦门大学本科毕业论文13/40机硬件资源进行操作一样,被称作为第四代计算机语言的 MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB 最突出的特点就是简洁。MATLAB 用更直观的,符合人们思维习惯的代码,代替了 C 和 FORTRAN 语言的冗长代码。MATLAB 给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB 的主要特点:(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB 程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的

29、可靠性。可以说,用 MATLAB 进行科技开发是站在专家的肩膀上。2)运算符丰富。由于 MATLAB 是用 C 语言编写的,MATLAB 提供了和 C 语言几乎一样多的运算符,灵活使用 MATLAB 的运算符将使程序变得极为简短。3MATLAB 既具有结构化的控制语句(如 for 循环,while 循环,break 语句和 if 语句),又有面向对象编程的特性。(4)程序限制不严格,程序设计自由度大。例如,在 MATLAB 里,用户无需对矩阵预定义就可使用。5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。(6)MATLAB 的图形功能强大。在 FORTRAN 和

30、 C 语言里,绘图都很不容易,但在MATLAB 里,数据的可视化非常简单。MATLAB 还具有较强的编辑图形界面的能力。(7)MATLAB 的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。(8)功能强大的工具箱是 MATLAB 的另一特色。MATLAB 包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性

31、工具箱是专业性比较强的,如 control,toolbox,signl proceessing toolbox,commumnication toolbox 等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究。厦门大学本科毕业论文14/40(9)源程序的开放性。开放性也许是 MATLAB 最受人们欢迎的特点。除内部函数以外,所有 MATLAB 的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。3.3 用 Matlab 实现数字水印算法的优点Matlab 集成了 DCT、D

32、WT 等函数有丰富的小波函数和处理函数,这不仅方便了研究人员,而且使源程序简洁明了、易实现。强大的数学运算功能,能够方便、高效地实现音频、视频中的大量矩阵运算。提供了图像处理工具箱、小波分析工具箱、数字信号处理工具箱。用来编制跨数字图像处理技术、数字信号处理等多学科的数字水印技术是非常好的选择。而且 MATLAB 与目前最强大的编程工具Visual C+ 6.0 具有良好的接口。3.4 Matlab 函数介绍在介绍函数之前,必须明确一点:编写水印程序时,处理的图像数据是二维信号,而声音信号是一维信号。在这里我们仅仅简单介绍与水印有关的函数,具体函数的用法请读者参考文献2。3.4.1 数据输入输

33、出函数:imread()和 imwrite():可以读写 bmp,jpg/jpeg, tif/tiff, png, hdf, pcx, wxd 格式文件。读索引文件时,还可以得到相应的调色板数据。auread()、auwrite()、wavread()和 wavwrite():可以方便地读写 au和 wav 文件,并可控制其中的位及频率。3.4.2 图像显示与声音播放:imshow():显示一幅图像;厦门大学本科毕业论文15/40imfinfo():可以得到读入图像的信息。如文件的大小、格式、格式版本号、图像的高度、宽度、颜色类型(真彩色,灰度图还是索引图)等wavplay():播放 wav

34、声音文件。当然,也可以把处理后的 wav 文件保存后再用其它工具播放。wavrecord():可以对处理后的 wav 文件进行录音。3.4.3 变换频函数:对信号采用不同的变换,是实现频域法水印的至关重要的一步,MATLAB 中对一维信号和二维信号分别提供了各种变换和逆变换函数。离散余弦变换(DCT)dct(),dct2():分别实现一维信号和二维信号的 DCT(离散余弦变换);idct(),idct2():分别实现一维信号和二维信号的 IDCT(逆向离散余弦变换);离散傅里叶变换(DFT)fft(),fft2():分别实现一维信号和二维信号的 DFT(离散傅里叶变换);ifft(),ifft

35、2():分别实现一维信号和二维信号的 IDFT(逆向离散傅里叶变换);离散小波变换(DWT)dwt(),dwt2():分别实现一维信号和二维信号的 DWT(离散小波变换);idwt(),idwt2():分别实现一维信号和二维信号的 IDWT(离散小波变换);Wavedec2():多级二维小波分解函数;Waveinfo():提供小波包中所有的小波信息;另外,MATLAB 中还有丰富的小波包处理函数,有兴趣的读者可参考文献2。3.4.4 攻击函数攻击函数对算法进行攻击测试是对水印鲁棒性检测的一种重要手段,一个好的水印算法必须经过各种攻击测试才能对之做出客观的评价。MATLAB 中的许多函数可以直接

36、用来做的攻击测试。如下面的函数:旋转:rotate()可以对图像进行任意角度的旋转;剪裁:imcrop()可以按精确定位的各点坐标进行剪裁;厦门大学本科毕业论文16/40放大/缩小:imresize()可以以指定的插值方法来对图像进行放大和缩小。滤波:filter()和 filter2()可实现对一维信号和二维信号的滤波;压缩:imwrite()中 jpg 和 quality 参数能对图像进行可控 jpg 压缩;抖动:dither()对图像进行抖动;抖动攻击考验水印鲁棒性的一个很好的攻击;加各种噪声:imnoise()可以对图像加入各种噪声,如白噪声、椒盐噪声等,加入噪声是对水印鲁棒性考验的一

37、种常见的攻击;第四章数字水印系统模块设计与实现4.1 数字水印系统的总体结构厦门大学本科毕业论文17/40图像数字水印系统的总体结构嵌入水印模块水印提取模块水印算法稳健性验证模块获取原图像获取水印图像存储和显示嵌入水印的图像获取含有水印的原始图像获取含有水印置乱的随机序列恢复水印图像获取含水印图像对图像进行处理提取水印图像并显示,得到相关系数4.2 嵌入水印模块4.1.1 嵌入水印模块功能描述输入原始图像的地址,载入原始图像,再输入将要嵌入水印图像的地址,把水印图像嵌入原始图像,输出含有水印的图像。厦门大学本科毕业论文18/404.1.2 嵌入水印的算法基本框图嵌入水印的算法基本框图如图 4-

38、1 所示图 4-1 嵌入水印的算法基本框图4.1.3 嵌入水印算法的具体分析1原始图像分割为互不覆盖的 88 子块,记为Bm=fm(i,j), 0 m =0,1,.,M-1 7m =0,1,.,M-1 ,对 Bm 进行 DCT 变换,得到: DCT ,0 7m =0,1,.,M-1 2水印的预处理 我们设二值水印表示为: , ,很明显看出,如果不将水印的空域关系打乱,直接把可视的二值水印加到原始图像的中频段,那么一个简单的图像剪切操作就会把水印破坏掉,因此,在嵌入水印之前,首先对其进行置乱处理,本系统采用一个时间复杂度较低的随机算法来打乱水印的空间顺序。 其中, 是原始像素点 经过随机排序后得

39、到的乱序水印像素点。厦门大学本科毕业论文19/40图 4-2 水印随机排序示意图首先,利用密钥 K1 产生 0 到 的随机数作为原始水印每个像素点的标号,然后利用桶分类排序算法将这些随机标号按由小到大排序,随机标号的顺序排序使得标号所标识的原始水印像素点随机排序,这种方法的时间复杂度为 ,以3232 二值水印为例,排序过程由图 4-2 所示。3 水印扩频 扩频调制具有抗干扰、低功率谱密度、保密性好等许多优点,它是利用伪随机序列对被传输信号进行频谱扩展,使之占据的带宽远远超过所必需的最小带宽,其本质是利用带宽换取信噪比。在水印算法中,它是利用水印信道的容量换取算法稳健性的改善。本文提出采用两个不

40、相关的伪随机序列来代表二值水印信息中的 0 和 1,从而实现频谱扩展的目的,首先利用密钥 K2 产生一个种子,在此种子下,生成两个不相关的伪随机序列:PN_zero,PN_one 。, 其中 L 由 88DCT 系数矩阵的中频段长度决定,然后根据二值水印信息的 0 或1,分别嵌入 PN_zero 或 PN_one。本文采用的扩频方案具有简单易实现和稳健性好的优点。4水印嵌入 为了在鲁棒性和透明性之间进行折中,本文将二值水印经扩频后的伪随机序列嵌入到各图像块的中低频段系数中。实验中采用的二值图像是 3232 的字符图像watermark.bmp,原始图像是 256 256 的 Lena 图像 o

41、riImage.bmp。原始图像经过 88分块后,有 1024 个子块。首先对 Bm(m =0,1,.,M-1) 的系数按 Zig-Zag 顺序读取(如图 4-3( a) ) ,在图 4-3(b )为 1 的位置嵌入伪随机序列, 水印具有较好的鲁棒性和透明性。 厦门大学本科毕业论文20/40将按 Zig-Zag 顺序读取的每一分块系数重新排列为一维向量 ,并取出系数中第 L+1 到 L+N 的中低频段部分,得:, 根据图 3 知 L =14, N 13,伪随机序列由 N 个实数随机数组成:按下式将伪随机序列嵌入到(a) 中:当 message(m)0, 当 message(m)1, (a)Zi

42、g-Zag 读取顺序 (b)水印嵌入位置图 4-3 Zig-zag 读取顺序及水印嵌入位置message 为二值水印行扫描重复 4 次后排成的一维向量。它的长度和原图像块个数均为 1024, 为拉伸因子,根据块的类别而变, 可由实验确定,对应 R1、R2,本文根据实验确定 分别为 6、8、12。将修改系数后的一维向量再逆 Zig-Zag 扫描变换为二维矩阵,然后分块做 IDCT 变换,即得到嵌有水印的图像4.3 水印提取模块4.3.1 水印提取的功能描述输入含有水印的图像的地址和水印置乱的随机序列,载入图像,获得水印向量,并根据原图像的水印置乱的随机序列进行反置乱,恢复水印图像。厦门大学本科毕

43、业论文21/404.3.2 水印提取的算法框图水印提取算法框图如图 4-4 所示,图 4-4 水印检测算法4.3.3 水印提取的算法具体分析1含水印图像分块 设嵌入水印的图像为 ,首先将 分割为互不覆盖的 88 子块,记为 ,对 进行 DCT 变换,得到: DCT ,0 7 2解扩 对各 88DCT 分块系数矩阵 按 Zig-Zag 读取顺序排列为一维向量,提取每一列向量 L+1 到 L+N 的系数,设该系数组成的一维向量为:, 将 和嵌入过程中的两伪随机序列分别作相关运算,从而判决嵌入的原始水印信息是 0 或 1。设:Sequence_zero(m)corr2(PN_zero, ),Sequ

44、ence_one(m)corr2(PN_one, )则:if Sequence_zero(m) Sequence_one(m)message(m)=0;else message(m)=1;对每一子图像块进行相关运算,就可把置乱水印的一维向量 message 提取出来。3 水印反置乱 厦门大学本科毕业论文22/40原始水印在嵌入前经过了置乱处理,因此须对提取出的水印 message 进行反置乱。首先根据密钥 K1 产生 0 到 的随机数,该随机数即为 message 向量中每个像素点的标号,按照正常顺序重新排列 message 向量,就可还原出原始水印的一维向量,因为水印嵌入过程中是重复 4 次

45、嵌入的,因此把该一维向量分为 4 段,运用多数原则提取原始水印,再将原始水印逆变换为二维矩阵,即恢复出二值水印。4.4 水印算法的稳健性验证模块:4.4.1 水印算法稳健性验证的功能描述对含有水印的原始图像进行剪切,JPEG 压缩,加噪攻击实验,然后从经过处理的图像中提取水印,恢复其水印。得出与原水印的相关系数。根据相关系数来评价水印算法的稳健性。4.4.2 添加噪音对含有水印的图像加入不同的噪声,提取出来的水印图像,获得相关系数,根据相关系数来判断水印抵抗噪声的能力。%addnoise.mWImage1=idctF1;noise0=10*rand(size(WImage1);WImage1=

46、WImage1+noise0;figure;imshow(WImage1, );title(adding uniform noise 添加噪音);watemark_detect(WImage1,Y1,I0,waterMark1);厦门大学本科毕业论文23/404.4.3 滤波对嵌入水印的图像进行中值滤波(33), 提取出来的水印图像并给以显示获得相关系数,根据相关系数来判断水印抵抗滤波的能力。%filter.mWImage1=idctF1;WImage2=idctF1;H=fspcial(gaussian 高斯,10,10,5);WImage2=imfilter(WImage2,H);figu

47、re;imshow(WImage2, );title(through filter 10,10 滤波);watemark_detect(WImage2,Y1,I0,waterMark1);4.4.4 剪切我们从不同角度对图像进行了剪切实验,提取出来的水印图像,获得相关系数,根据相关系数来判断水印抵抗剪切的能力。%cut.mWImage3=idctF1;WImage3(1:128,1:128)=256;figure;imshow(WImage3);title(cutting part of the image 剪切);watemark_detect(WImage3,Y1,I0,waterMark

48、1);4.4.5JPEG 压缩将嵌入水印的图像经过品质因子为 70、60%、50、40、30的 JPEG 压缩,提取出来的水印图像,获得相关系数,根据相关系数来判断水印抵抗 JPEG 压缩的能力。厦门大学本科毕业论文24/40%Jpeg.mWImage4=idctF1;WImage4=im2double(WImage4);cnum=10;dctm=dctmtx(8);p1=dctm;p2=dctm.;imageDCT=blkproc(WImage5,8,8,p1*p2*x,dctm,dctm.);DCTvar=im2col(imageDCT,8,8,distinct);n=size(DCTva

49、r,1);DCTvar=(sum(DCTvar.*DCTvar)-(sum(DCTvar)/n).2)/n;dum,order=sort(DCTvar);cnum=64-cnum;mask=ones(8,8);mask(order(1:cnum)=zeros(1,cnum);im88=zeros(9,9);im88(1:8,1:8)=mask;im128128=kron(im88(1:8,1:8),ones(16);dctm=dctmtx(8);p1=dctm.;p2=mask(1;8,1:8);p3=dctm;Wimage5=bikproc(imageDCT,8,8,p1*(x.8p2)*p3,dctm.,mask(1:8,1:8),dctm);figure;imshow(Wimage5);title(JPEG Image 压缩);watemark_detect(WImage5,Y1,I0,waterMark1);4.4.6 旋转将嵌入水印

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报