《基于Matlab的数字图像水印技术(共10页).doc》由会员分享,可在线阅读,更多相关《基于Matlab的数字图像水印技术(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上基于Matlab 的数字图像水印技术*摘要:数字水印技术涉及到许多图像处理算法以及数学计算工具等,如果用普通编程工具实现上述算法,需要要花费大量的时间,MathWorks公司推出的一种简单、高效、功能极强的高级语言MATLAB语言,它具有高性能数值计算能力,可视化计算环境。只需短短的几行代码就可在MATLAB中解决许多复杂的计算问题。关键字:图像处理,数字水印, MATLAB0 引言随着Internet的普及,信息的安全保护问题越来越备受关注。如何有效地防止数据的非法复制以及鉴别数字媒体的知识产权,成为急需解决的问题。Caronni在1993年提出了数字水印,并将其应
2、用于数字图像,后来,将数字水印的概念扩展到电视图像等领域,数字水印技术是一种版权保护的重要手段,得到了广泛的研究和应用。本文简要介绍一下基于Matlab的数字图像水印技术。介绍数字水印的原理以及使用方法,探索了基于离散余弦变换(DCT)的数字图像水印算法,并借助MATLAB,实现数字水印的嵌入、提取以及攻击测试。1 数字水印技术1.1 数字水印数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体当中,例如包括多媒体、文档、软件等,但不影响原载体的使用价值,也不容易被人的知觉系统,如视觉或听觉系统觉察到。通过这些隐藏在载体中的信息,可以确认内容创
3、建者、购买者、传送隐秘信息或者判断载体是否被篡改等。数字水印是信息隐藏技术的重要研究方向之一。从信号处理的角度看,在载体图像中嵌入数字水印,可以视为在强背景(即原始公开图像)下叠加一个视觉上看不到的弱信号(即水印图像),由于人的视觉系统(Human Visual System,HVS)1分辨率受到一定的限制,只要保证叠加信号的幅度低于HVS的对比度门限,HVS就感觉不到信号的存在,因此,通过对载体对象作一定的调整变换,就有可能在不引起人感知的情况下嵌入一些信息。1.2 数字水印技术的特点数字水印技术大概具有以下几个方面的特点: 1.2.1 安全性数字水印的信息应是安全的,很难篡改或伪造,同时,
4、应当有较低的误检测率,如果原内容发生变化,数字水印也发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加也有很强的抵抗性。 1.2.2 隐蔽性数字水印应是不容易被察觉的,而且是不影响被保护数据的正常使用的,也不会降质的。 1.2.3 鲁棒性是指在经历各种有意或无意的信号处理过程后,数字水印仍能保持部分完整性,并且能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、A/D与D/A转换、重采样、剪切、位移、尺度变化和有损压缩编码等。主要被用于版权保护的数字水印易损水印(Fragile Watermarking),用于完整性保护,这种水印也是在内容数据中嵌入不可见的信息。如果内容发生改变
5、时,这些水印信息也会发生相应的改变,从而可以鉴定原始数据是否被篡改。 1.2.4 水印容量是指载体在没发生形变的前提下可嵌入的水印信息量。嵌入的水印信息必须足以表示多媒体内容的创建者的标志信息,或购买者的序列号,这样有利于解决版权纠纷和保护数字产权合法拥有者的利益。尤其是隐蔽通信领域的特殊性,对水印的容量需求极大。1.3 数字水印的应用领域 伴随着数字水印技术的发展,数字水印的应用领域也得到了相应扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信等。当数字水印应用于版权保护时,潜在的应用市场在包括电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。数字水印用于隐藏标识
6、时,可以在医学、制图、数字成像、数字图像监控、多媒体索引以及基于内容的检索等领域得到应用。数字水印的认证方面主要用于ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信,将在国防和情报部门得到广泛的应用。 多媒体技术的飞速发展和Internet的普及带来了一系列政治、经济、军事和文化方面的问题,产生了许多新的研究热点,以下几个倍受关注的问题构成了数字水印的研究背景。 1.3.1 数字作品的知识产权保护 数字作品,如电脑美术、扫描图像、数字音乐、视频、三维动画等的版权保护是当前的热点问题。由于数字作品的拷贝、修改非常容易,并且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办
7、法,给作品加上版权标志,而这种明显可见的标志很容易被篡改。“数字水印”利用数据隐藏原理,使版权标志不可见或不可听,既不损害原作品,又能够达到版权保护的目的。目前,版权保护的数字水印技术已经进入了初步实用化阶段,IBM公司在其“数字图书馆”软件中就使用了数字水印功能,Adobe公司也在其著名的Photoshop软件中,集成了Digimarc公司的数字水印插件。实事求是地说,目前市场上的数字水印产品在技术上还不成熟,非常容易被破坏或破解,距离真正的实用还有很长的路要走。 1.3.2 商务交易中的票据防伪 随着高质量图像的输入输出设备的发展,尤其是精度超过 1200dpi的彩色喷墨、激光打印机和高精
8、度彩色复印机的出现,使货币、支票以及其他票据的伪造变得更加容易。另一方面,在从传统商务向电子商务转变的过程中,会产生大量过度性的电子文件,如各种纸质票据的扫描图像等。尽管在网络安全技术成熟以后,各种电子票据还需要一些非密码的认证方式。数字水印技术可以为各种票据提供不可见的认证标志,从而很大程度增加了伪造的难度。 1.3.3 证件真伪鉴别 信息隐藏技术可以在很大范围内应用,作为证件来说,每个人需要不只一个证件,证明个人身份的包括:身份证、护照、驾驶证、出入证等;证明某种能力的包括:各种学历证书、资格证书等。国内目前在证件防伪领域面临巨大的商机,因为缺少有效的措施,使得“造假”、“买假”、“用假”
9、泛滥,已经严重地干扰了正常的经济秩序,对国家的形像也造成了不良影响。通过水印技术可以确认该证件的真伪,使得该证件无法仿造假。2 高效并实用的工具MATLAB Matlab是当前在国内外十分流行的工程设计和系统仿真软件包。它是MathWorks公司在1982年推出的一套高性能的数值计算以及可视化的软件,它把数值分析、矩阵运算、信号处理和图形显示集于一体,构成了一个方便的、界面友好的用户环境。 Matlab一推出就得到了各个领域专家、学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础。由各个专家学者相继推出的MATLAB工具箱,其中的信号处理(signal processing)、控制系统
10、(control system)、神经网络(neural network)、图像处理(image processing)、鲁棒控制(robust control)、非线性系统控制设计(nonlinear system control design)、系统辨识(system identification)、最优化(optimization)、模糊逻辑(fuzzy logic)、小波(wavelet)、通信(communication)、统计(statistics)等工具箱,这些工具箱给各个领域的研究工作和工程应用提供了有力的工具,凭借这些“巨人肩上的工具”,各个层次的研究人员可直观、方便地进行分
11、析、计算以及设计工作,从而大大地节省了时间。3 数字水印的嵌入水印嵌入就是把水印信号嵌入到原始图像中。水印嵌入过程如图所示图1 水印提取过程水印嵌入准则包括两个准则:H法准则和乘法准则。其中惩罚准则有强度因子,为保证在水印不可见的前提下,尽可能提高嵌入水印的强度。强度因子的选择必须考虑图像的性质以及视觉系统的特性。4 数字水印的提取与检测在某水印系统中,水印可以被精确地提取出来,这一过程就是水印提取。例如在完整性确认的应用中,必须能够精确地提取出所嵌入的水印,还要通过水印的完整性来确认多媒体数据的完整性。如果提取出的水印发生了部分的变化,最好还能够通过变化的水印的位置来确定原始数据有没有被篡改
12、的位置。水印在提取检测时可以需要原始图像的参与,也可以不需要原始图像的参与。但将水印技术用于图像的网络发布和传播时,如果检测时需要使用原始图像,则是个缺陷,因此,当前大多数的水印检测算法不需要原始图像的参与2。图2和图3分别是水印提取和检测的框图。图2 水印提取过程图3 水印检测过程5 利用Matlab实现图像数字水印加载算法 给图像加水印其实就是一个修改图像数据的过程, 来给图像隐藏带有特定含义的信息编码。 目前,最常见的数字水印算法包括:最低有效位算法LSB(Least significant bits)、Patchwork方法及纹理块映射编码方法、基于变换域方法等。其中LSB算法具有较大
13、的信息隐藏量,可是水印很脆弱,容易被擦除。Patchwork方法和纹理块映射编码方法隐蔽性较好,并且对于有损的JPEG 和滤波、压缩和扭转等操作有较好的抵抗能力,可是仅适用于具有大量纹理区域的图像,不能完全自动完成。 基于变换域方法具有较好的稳健性,变换又包括:离散余弦变换(DCT)、小波变换(WT)、付氏变换(FFT)和哈马斯变换等。其中,基于分块的DCT是最常用的变换之一,因为现在所采用的静止图像压缩标准JPEG也是基于分块DCT的。本文采用离散余弦变换(DCT)设计了水印的嵌入算法,将二值图像作为水印信号,利用Matlab(当前国内最流行的工程与设计软件)实现算法。 6 水印攻击测试由于
14、数字水印在实际应用中可能会遭到各种各样的攻击,因此对算法进行攻击测试是衡量一个水印算法优劣的重要手段。本程序的后半部分就是一个水印攻击与水印提取的程序,首先对嵌入水印后的图像进行JPEG压缩(一种水印攻击),而后从压缩的图像中提取出水印。图4 原始公开图像图5 水印图像图6 嵌入水印后的图像 图7 加入高斯噪声的水印图像 图8 从含水印图像中提取出的水印图像7 实验程序clear clcM =512;%原图像长度N =64;%水印图像长度K =8;I=zeros(M,M);J=zeros(N,N);BLOCK=zeros(K,K);%显示原图像subplot(2,3,1);I=imread(C
15、:Documents and SettingsAdministrator桌面图像.jpg,jpg);imshow(I);title(原始公开图像);%显示水印图像subplot(2,3,2);J=imread(C:Documents and SettingsAdministrator桌面水印.jpg,jpg);imshow(J);title (水印图像);%水印嵌入for p=1:Nfor q=1:Nx=(p-1)*K+1; y=(q-1)*K+1; BLOCK =I(x:x+K-1,y:y+K-1);BLOCK=dct2(BLOCK);if J(p,q)=0 a=-1;else a=1;en
16、dBLOCK(1,1)=BLOCK(1,1)*(1+a*0.03);BLOCK=idct2(BLOCK);I(x:x+K-1,y:y+K-1)=BLOCK;endend%显示嵌入水印后的图像subplot(2,3,3);imshow(I);title(嵌入水印后的图像);imwrite(I,C:Documents and SettingsAdministrator桌面图像.jpg,jpg);%从嵌入水印的图像中提取水印I=imread(C:Documents and SettingsAdministrator桌面图像.jpg,jpg);J=imread(C:Documents and Sett
17、ingsAdministrator桌面水印.jpg,jpg);J=imnoise(J,gaussian,0,0.01);subplot(2,3,4);imshow(J,);title(加入高斯噪声);for p=1:Nfor q=1:Nx=(p-1)*K+1;y=(q-1)*K+1;BLOCK1 =I(x:x+K-1,y:y+K-1);BLOCK2 =J(x:x+K-1,y:y+K-1);BLOCK1=dct2(BLOCK1);BLOCK2=dct2(BLOCK2);a = BLOCK2(1,1)/BLOCK1(1,1)-1;if a0W(p,q)=0;elseW(p,q)=1;endende
18、nd%显示提取的水印subplot(2,3,5);imshow(W);title(从含水印图像中提取的水印)3;8 结语当老师讲课说道数字水印技术时,就感觉自己很感兴趣,于是就在网上搜素了一下相关的信息,真的挺有意思,所以就选择了这个课题。当着手做数字水印的时候,却发现好多好多不明白,在网上搜资料查询咨询老师等等,在此过程真的了解了好多相关的知识,从以前对于数字水印以及图像处理的Matlab程序的不懂到现在的这篇论文,进步了不少。但是现在还是不能自己编出一套完整的程序,Matlab这样一个强大的工具!嵌入水印信息后,原图与嵌入水印信息的图像在视觉效果上基本没有明显分别,用肉眼几乎分辨不出,这说明这种算法充分利用人限的视觉HVS特性, 利用离散DCT域嵌入水印后,水印的不可见性相当好,图像在嵌入水印前后视觉效果改变不大, 不会影响正常使用。参考文献1许录平数字图像处理M北京:科学出版社2007.102乇炳锡陈琦,邓峰森数字水印技术M西安:西安电子科技大出版社20033胡彦陈昭炯MATLAB在数字水印中的应用J计算机工程2003专心-专注-专业