首页 matlab数字水印算法及实现和源代码

matlab数字水印算法及实现和源代码

举报
开通vip

matlab数字水印算法及实现和源代码 摘要:数字水印技术作为数字媒体版权保护的有效办法,近年来在国内外引起了人们极大的兴趣。但是由 于数字水印技术涉及到的知识面比较广,即使是专业人员有时也感到力不从心,那么如何选择一种有效的 编程工具便成为一个亟待解决的问题。本文从数字水印技术本身的特点、一般模型和典型算法出发,简要 地介绍了一种可以快速上手的高效的实用语言——Matlab。最后 ,作者给出一个用Matlab实现数字水印实 例。 关键词:数字水印 Matlab Visual C++6.0 DWT DCT 1 引言 作为传统加密系统的有效补...

matlab数字水印算法及实现和源代码
摘要:数字水印技术作为数字媒体版权保护的有效办法,近年来在国内外引起了人们极大的兴趣。但是由 于数字水印技术涉及到的知识面比较广,即使是专业人员有时也感到力不从心,那么如何选择一种有效的 编程工具便成为一个亟待解决的问题。本文从数字水印技术本身的特点、一般模型和典型算法出发,简要 地介绍了一种可以快速上手的高效的实用语言——Matlab。最后 ,作者给出一个用Matlab实现数字水印实 例。 关键词:数字水印 Matlab Visual C++6.0 DWT DCT 1 引言 作为传统加密系统的有效补充办法,从 1993年 Caronni正式提出数字水印到现在短短几 年里,无论是在国内还是在国外对数字水印的研究都引起了人们极大的关注。但数字水印技 术的发展还很不成熟,应用也处于初级阶段。在我国,知识产权问题是一个敏感的话题,只 有深入开展数字水印技术的研究,尽快制定我国的版权保护水印 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,才能使我们在未来可 能的国际知识产权纠纷中取得主动权。那么掌握高效的工具,便成为一个必须解决的问题。 本文就针对数字水印本身的特点,介绍了一种高效的实用工具——MATLAB。 2 数字水印技术 2.1 数字水印技术的复杂性 数字水印技术涉及到通信理论、编码理论、噪声理论、视听觉感知理论、扩频技术(Sprea d Spectrum)、信号处理(Signal Processing ) 技术、数字图像处理(Digital Image Pr ocessing)技术、多媒体(Multimedia)技术、模式识别(Pattern Reorganization)技术、 算法设计(Algorithm Design)等理论,用到经典的 DFT(Discrete Fourier Transform)、 DCT(Discrete Cosine Transform)变换和近代最先进的数学工具----小波(Wavelet)。 数字水印又是一个横跨计算机科学、生理学、密码学、数字、数字通信等多门学科,并与 I nternet的发展密切相关的交叉科学。数字水印的多学科性导致数字水印技术研究的难度和 复杂性。所以,针对数字水印技术本身的跨学科特点,找出一种合适的编程工具,往往可以 起到事半功倍的效果。下面我们从数字水印的一般模型出发,来逐步介绍MATLAB。 2.2数字水印的一般模型 数字水印的一般模型如图 1所示: 频域法加入数字水印的原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域 , 常用的变换一般有 DWT、DCT、DFT、WP和分形。然后,对加入了水印信息的信号进行 频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息的信号。 频域法检测水印的原理是将原始信号与待检测信号同时进行变换域变换,比较两者的区别, 进行嵌入水印的逆运算,得出水印信息。如果是可读的水印,那么就此结束,如果是不可读 水印,如高斯噪声,就将得出的水印与已知水印作比较,由相关性判断,待检测信号含不含 水印,故水印的检测有两个结束点。 2.3数字水印技术的常用算法 数字水印算法一般可分为两种空域法和频域法,频域法有以下优点:1)嵌入的水印信号能 量可以分布到空域的所有像素上,有利于保证水印的不可见性;2)视觉系统(HVS)的某 些特性(如频率的掩蔽特性)可以更方便地结合到水印编码过程中;3)频域法可与国际数 据压缩标准兼容,从而实现在压缩域(compressed domain)内的水印编码。所以我们 也以频域法为主介绍MATLAB在数字水印技术中的使用。 DCT法(Discreste Cosineλ Transformation) 对原始信号做 DCT的算法:Cox 和 Piva 等人提出的 DCT技术的经典之作。Cox利用随 机数发生器产生标准正态序列作为水印信息对图像进行整体 DCT变换后,选取除去 DC系 数之外部分较低频率系数叠加水印信息;Piva则修改整幅图像的中频部分。 对原始信号分块后,再作 DCT的算法:Hsu和Wu 把图像进行 8*8分块,将一个二进制 序列作为水印放入 DCT的中频区;有些学者则计算整个图像的 DCT,把一个实数序列嵌入 DCT的中频系数上。选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响; 同时,尽量避免有损压缩对水印信息可能带来的损失。 还有一种 DCT方法就是把水印信息嵌入到高频系数上,但是采用这种方法,抗压缩性非常 差。 DFT法(Discreteλ Fourier Transformation) Swanson 等利用时域小波变换和频率掩蔽特性结合,实现多分辨率视频水印;Kundur和 Hatzinakos 把水印植入灰度图像的小波变换域。 其它变换域还有 Fourier-mellin 域 、Fourier 变换域、分形 或WP(Waveletλ Packa ge)等。 以上的变换域算法计算量都非常大,编程实现这些变换和逆变换也需要好好下一番功夫,由 此造成研究人员把大量的时间和精力浪费在与水印算法研究无关的问题上。 3 可实现数字水印技术的高效实用工具——Matlab 3.1Matlab简介 Matlab是当前在国内外十分流行的工程设计和系统仿真软件包。它是MathWorks公司于 1982年推出的一套高性能的数值计算和可视化软件,它集数值 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 、矩阵运算、信号处理 和图形显示于一体,构成了一人方便的、界面友好的用户环境。 Matlab的推出得到了各个领域专家、学者的广泛关注,其强大的扩展功能为各个领域的应 用提供了基础。由各个专家学者相继推出了MATLAB工具箱,其中的信号处理(signal pro cessing)、控制系统(control system)、神经网络(neural network)、图像处理(image processing)、鲁棒控制(robust control)、非线性系统控制设计(nonlinear system co ntrol design)、系统辨识(system identification)、最优化(optimization)、模糊逻辑(f uzzy logic)、小波(wavelet)、通信(communication)、统计(statistics)等工具箱,这些 工具箱给各个领域的研究和工程应用提供了有力的工具,借助于这些“巨人肩上的工具”,各 个层次的研究人员可直观、方便地进行分析、计算及设计工作,从而大大地节省了时间。 3.2用Matlab研究数字水印的优点 集成了 DCT、DWT等函数有丰富的小波函数和处理函数,这不仅方便了研究人员,而且 使源程序简洁明了、易实现。λ 强大的数学运算功能。能够方便、高效地实现音频、视频中的大量矩阵运算。λ 提供了图像处理工具箱、小波分析工具箱、数字信号处理工具箱。用来编制跨数字图像处 理技术、数字信号处理等多学科的数字水印技术是非常好的选择。λ MATLAB与目前最强大的编程工具——Visualλ C++具有良好的接口。 3.3Matlab函数介绍(以 MATLAB5.3为例) 在介绍函数之前,我们必须明确一点:作水印程序时,处理的图像数据是二维信号,而声音 信号是一维信号。这里,我们仅仅简单介绍与水印有关的函数,具体函数的用法请读者参考 文献[2]。 数据输入输出函数λ imread()和 imwrite():可以读写 bmp,jpg/jpeg, tif/tiff, png, hdf, pcx, wxd格 式文件。读索引文件时,还可以得到相应的调色板数据。 auread()、auwrite()、wavread()和wavwrite():可以方便地读写 au和 wa v文件,并可控制其中的位及频率。 图像显示与声音播放λ imshow():显示一幅图像; imfinfo():可以得到读入图像的信息。如文件的大小、格式、格式版本号、图像的高度、 宽度、颜色类型(真彩色,灰度图还是索引图)等 wavplay():播放 wav声音文件。当然,也可以把处理后的 wav文件保存后再用其它工具 播放。 wavrecord():可以对处理后的 wav文件进行录音。 变换频函数λ 对信号采用不同的变换,是实现频域法水印的至关重要的一步,MATLAB中对一维信号和 二维信号分别提供了各种变换和逆变换函数。 离散余弦变换(DCT)λ dct(),dct2():分别实现一维信号和二维信号的 DCT(离散余弦变换); idct(),idct2():分别实现一维信号和二维信号的 IDCT(逆向离散余弦变换); 离散傅里叶变换(DFT)λ fft(),fft2():分别实现一维信号和二维信号的 DFT(离散傅里叶变换); ifft(),ifft2():分别实现一维信号和二维信号的 IDFT(逆向离散傅里叶变换); 离散小波变换(DWT)λ dwt(),dwt2():分别实现一维信号和二维信号的 DWT(离散小波变换); idwt(),idwt2():分别实现一维信号和二维信号的 IDWT(离散小波变换); Wavedec2():多级二维小波分解函数; Waveinfo():提供小波包中所有的小波信息; 另外,MATLAB中还有丰富的小波包处理函数,有兴趣的读者可参考文献[2]。 攻击函数λ 对算法进行攻击测试是对水印鲁棒性检测的一种重要手段,一个好的水印算法必须经过各种 攻击测试才能对之做出客观的评价。MATLAB中的许多函数可以直接用来做的攻击测试。 旋转:rotate()可以对图像进行任意角度的旋转; 剪裁:imcrop()可以按精确定位的各点坐标进行剪裁; 滤波:filter()和 filter2()可实现对一维信号和二维信号的滤波; 抖动:dither()对图像进行抖动;抖动攻击考验水印鲁棒性的一个很好的攻击; jpeg压缩:imwrite()中 jpg和 quality参数能对图像进行可控 jpg压缩; 加各种噪声:imnoise()可以对图像加入各种噪声,如白噪声、椒盐噪声等,加入噪声是对 水印鲁棒性考验的一种常见的攻击; 放大/缩小:imresize()可以以指定的插值方法来对图像进行放大和缩小。 3.4一个用MATLAB编写的数字水印算法实例 为证明MATLAB的高效性与实现简便性,我们以文献[1]的算法为例,给出在Windows98 环境下MATLAB5.3中调试通过的完整源程序。 嵌入水印λ %定义常量 size=256;block=8;blockno=size/block;LENGTH=size*size/64; Alpha1=0.02; Alpha2=0.1; T1=3; I=zeros(size,size); D=zeros(size,size); B W=zeros(size,size); block_dct1=zeros(block,block); %产生高斯水印,并显示水印信息; randn('seed',10);mark=randn(1,LENGTH); subplot(2,2,1);plot(mark);title('watermarc:Gaussian noise'); %显示原图 subplot(2,2,2);I=imread('lena264_264','bmp'); imshow(I);title('origine image:I'); %显示 prewitt为算子的边缘图 BW=edge(I,'prewitt');subplot(2,2,3);imshow(BW); title('edge of origine image'); %嵌入水印 k=1; for m=1:blockno for n=1:blockno x=(m-1)*block+1; y=(n-1)*block+1; block_dct1=I(x:x+block-1,y:y+block-1); block_dct1=dct2(block_dct1); BW_8_8=BW(x:x+block-1,y:y+block-1); if m<=1|n<=1 T=0; else T=sum(BW_8_8); T=sum(T); end if T>T1 Alpha=Alpha2 else Alpha=Alpha1; end block_dct1(1,1)=block_dct1(1,1)*(1+Alpha*mark(k)); block_dct1=idct2(b lock_dct1); D(x:x+block-1,y:y+block-1)=block_dct1; k=k+1; end end %显示嵌入水印后的图像 subplot(2,2,4);imshow(D,[]);title('embeded image:D'); 由些可以看到用MATLAB的编写一个完整的水印嵌入算法只需几十条语句便可以完成,而 这些程序如果用 C语言或其它高级语言编写程序至少在 100行以上。这个例子充分证明了 MATLAB在数字水印技术处理中的方便性和高效性。 4 MATLAB与 VC++6.0的接口 用MATLAB编写数字水印程序的主要优点是语言本身适合水印技术所需的大量的函数库。 并且MATLAB本身具有可扩展性、易学易用性和高效性的优点。除此之外,MATLAB还与 VC++6.0有着良好的编程接口,必要时,可以采用 MATLAB与 VC6.0++的混合编程。 有兴趣的读者可参考文献[3]。 5 结束语 数字水印软件作为数据安全领域中的新生事物,具有很高的技术含量和很强的生命力,同时 也孕育着巨大的商机。我们有理由相信,有了一个高效实用的研究工具能起到事半功倍的效 果,会有越来越多的有识之士投入到数字水印技术的研究和产业化进程中来。 参考文献 [1]黄继武 YunQ.SHI 程卫东 DCT域图像水印:嵌入对策和算法 电子学报 2000 vol.2 8 No.4 pp.57~60 [2]伯晓晨 李涛 刘路等编著 《Matlab工具箱应用掼——信息工程篇》 电子工业出版社 2000年 4月第 1版 [3]陶虹 周良柱 袁金荣 MATLAB与 Visual C++混合编程的实现 计算机工程与应用 20 00,10,pp.100-101,104 [4] Cox I J,Killian J,Leighton T,.Shamoon T.Secure spread spectrum watermar king for images ,audio and video.In: Pro.IEEE ICIP(Int.Conf.on Image Process ing),Lausane,Switzerland,1996,3,pp.243-246 [5] Cox I J,Killian J,Leighton F T,etal.Secure spread spectrum watermarking f or multimedia.In :IEEE Trans Image Processing,1997,6(12),pp.1673-1687. [6] Piva A.DCT-based watermark recovering without resorting to the uncorrup ted original images.In:Proc of ICIP’97,1:520-523. [7] Hsu C-T,Wu J-L.Hidder signature in images.In :Proc of ICIP,1996,3,pp.22 3-226. [8] Swanson M D,Zhu B,Tewfik A H.Multiresolution scene-based video waterm arking using perceptual models[J].In:IEEE Journal on Selected Areas in Com munications,1998,16(4),pp.540-550. [9] O’Ruanaidh J,Pun T.Rotation,scale and translation invariant spread spectr um digital image watermarking[J].In:Signal Processing,1998,66(3),pp.303-31 7. [10] O’Ruanaidh J,Dowling W,Boland F.Phase watermarking of digital images [A].In:Proc of ICIP[C].1996,3,pp.239-242. [11] Bas P,Chassery J M,Davoiine f.Self-similarity based image watermarking [A].In:Proc of EUSIPCO[C], 1998, pp. 2277-2280. [12] Kundur D,Hatzinakos D.Digital watermarking based on multiresolution w avelet data fusion. In: Proc. ICIP[C]. 1997, 1, pp. 544-547. E-mail:tianhp@263.net
本文档为【matlab数字水印算法及实现和源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_809455
暂无简介~
格式:pdf
大小:132KB
软件:PDF阅读器
页数:5
分类:
上传时间:2011-03-22
浏览量:56