数字水印课程设计.docx
- 文档编号:12745889
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:17
- 大小:25.79KB
数字水印课程设计.docx
《数字水印课程设计.docx》由会员分享,可在线阅读,更多相关《数字水印课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
数字水印课程设计
单片机应用实习任务书
学生某某:
专业班级:
指导教师:
工作单位:
题目:
数字水印算法设计
初始条件:
计算机;matlab软件等。
要求完成的主要任务:
通过课程设计,培养学生根据需要选学参考书,查阅手册,图表和文献资料的自学能力,通过独立思考﹑深入钻研有关问题,学会自己分析解决问题的方法。
培养严谨的工作作风和科学态度,使学生逐步建立正确的生产观点,经济观点和全局观点。
每个学生在课程设计选题中选做一个专题,学会用MATLAB语言编写信号与系统与数字信号处理的仿真程序;认真分析每个题目的具体要求;上机前初步编好程序,上机时认真调试程序;课程设计完毕时提交符合格式要求的课程设计报告。
学习掌握一种数字水印算法,选择两幅图像分别作为图像和水印图像,采用水印嵌入算法成生含水印图像。
采用水印提取算法,提取出嵌入水印。
并对水印算法的鲁棒性进展测试。
时间安排:
2012年6月20日---2012年7月5日
指导教师签名:
年月日系主任〔或责任教师〕签名:
年月日
摘要.................................................................................................................................IAbstract.........................................................................................................................II
1引言.............................................................................................................................1
1.1选题背景..........................................................................................................1
1.2数字水印技术的研究动态..............................................................................2
2数字图像水印技术综述.............................................................................................3
2.1数字水印的定义和根本原理..........................................................................4
2.2基于DCT域的数字水印技术..........................................................................5
2.3工具选择..........................................................................................................7
3系统实现.....................................................................................................................9
3.1水印的嵌入算法..............................................................................................9
3.2水印的提取算法..............................................................................................9
4.MATLAB仿真...............................................................................................................9
4.1水印嵌入与提取程序运行结果....................................................................10
4.2水印攻击实验................................................................................................10
6总结...........................................................................................................................14
7参考文献...................................................................................................................15
附录:
..........................................................................................................................16
随着数字技术和互联网技术的迅速开展,许多媒体都采用了数字化的储存方式,并且通过互联网来发布,这给信息的传播带来了很大的便利。
但是数字媒体很容易被非法复制,其保护逐渐成为需要迫切解决的问题。
数字水印技术被认为是解决此问题最有效的方法,作为保护的重要手段而得到了广泛的研究和应用,是信息领域的一个研究热点。
数字水印技术涉与到大量图像处理算法数学计算工具等,用普通编程工具实现上述算法将要花费大量的时间。
MATLAB语言是MathWorks公司推出的一种简单高效功能极强的高级语言,具有高性能数值计算能力和可视化计算环境许多复杂的计算问题只需短短的几行代码就可在中实现。
本文基于典型的DCT离散余弦变换数字水印算法过程,用MATLAB实现数字水印的嵌入提取和攻击测试。
关键词:
数字水印,DCT,MATLAB
Abstract
AlongwiththedigitaltechnologyandtherapiddevelopmentofInternettechnology,manymediahaveadopteddigitalstorage,andthroughtheInternettorelease,whichgiveinformationtransmissionhasbroughtgreatconvenience.However,digitalmediacanbeillegallycopied,itscopyrightprotectionhasbeeanurgentneedtoaddresstheproblem.Digitalwatermarkingtechnologyisconsideredtobethemosteffectivemethodtosolvethisproblem,asanimportantmeansofcopyrightprotectionhasbeenwidelystudiedandapplied,isaresearchhotspotinthefieldofinformation.Digitalwatermarkingtechnologyinvolvesalargenumberofimageprocessingalgorithmsmathematicaltools,usingordinaryprogrammingtoolstoachievetheabovealgorithmwillhavetospendalotoftime.TheMATLABlanguageisMathWorkspanyintroducedasimpleefficientandhighlyfunctionallanguage,withahighperformancenumericalabilityandvisualputingenvironmentmanyplexputingproblemsinonlyafewlinesofcodecanrealizeinthe.BasedonthetypicalDCTdiscretecosinetransformdigitalwatermarkingalgorithm,usingMATLABrealizedigitalwatermarkingembeddingandextractingandattacktest.
Keywords:
digitalwatermarking,DCT,MATLAB
1引言
数字水印技术是目前信息安全技术领域的一个新方向,是一种可以在开放的网络环境下保护和认证来源与完整性的新型技术。
它是信息隐藏学的一个重要分支,它用信号处理的方法在多媒体数据中嵌入特制的隐蔽的标记,这种标记的嵌入不会引起宿主媒体主观质量下降,不易发觉,人们无法从外表上感知水印,只有专用的检测器或计算机软件才可以检测出隐藏的数字水印,并且水印具有很强的对抗非法破解的能力。
为了保护版机人的经济利益在数字作品上直接标识人的信息会明显损害作品的质量,而利用文件的附加信息标识又很不安全。
相比之下,在不过多损害作品质量的前提下,使用数字水印技术将管理信息秘密嵌入数据中,是一个非常理想的解决方案。
从学术研究角度而言,数字水印技术是一项横跨信息处理、图像处理、多媒体技术、密码学等多学科领域的高新技术前沿课题,包括数字水印在内的信息隐藏技术尚未形成完整的学科理论体系。
因此,这是一项重要的应用根底研究。
同时它又是一项与实际应用密切结合的高新技术,其成果将成为拥有自主知识产权的技术,开展为具有自身特色的软件产品和专用芯片,随着信息产业的开展,有着一份广阔的应用市场。
数字水印的提出引起了学术界极大的兴趣,到现在短短的几年时间,就有大量的数字水印算法被提出来。
那么,如何既方便又高效的实现这些算法呢?
数字水印算法涉与大量图像处理、数学计算等,如果仅仅采用普遍编程工具所提供的功能严实再次地花费大量的时间用在上述算法的编程与调试上。
因此选择一种高性能的科学与工程计算软件是很在必要的。
目前,在工程计算上应用十分广泛的MATLAB软件是首选的编程语言。
MATLAB是一个适合多个学科使用的功能强大的软件,含有十分浩大的函数,MATLAB语言是Mathworks公
司推出的一种简单、高效、功能极强的高级语言,具有高性能数值计算能力和可视化计算环境。
许多复杂的计算问题只需短短的几行代码就可在MATLAB中实现。
本文介绍典型的数字水印算法,用MATLAB实现数字水印的嵌入、提取和攻击测试的方法。
数字时代的到来,多媒体数字世界丰富多彩,数字产品几乎影响到每一个人的日常生活。
信息媒体的数字化为信息的存取提供了极大的使得,同时也显著地提高了信息表达的效率和准确度。
计算机网络通信技术特别是互联网的蓬勃开展,使得数据的交换和传输变成了一个相对简单且快捷的过程。
人们借助计算机、数字扫描仪、打印机等电子设备可以方便、迅速地将数字信息传达到世界各地,在国际互联网上发布自己的作品,传递重要的信息,进展各种学术交流和电子商务活动等等。
如何保护这些与我们息息相关的数字作品,如保护、信息安全、数据认证以与访问控制等等,就被日益重视并变得迫切需要了。
借鉴普通水印的含义和功用,人们采用类似的概念保护诸如数字图像、数字音乐、数字文本等这样的数据,因此数字水印在今天的计算机和互联网时代大有可为。
数字水印技术是近十年才开展起来的,它是信息隐藏学的一个分支〔如图
1.1〕。
随着国内信息化程度的提高和电子商务逐渐走向实用,数字水印技术将会拥有更加广阔的应用前景。
2数字图像水印技术综述
数字水印是一种数字标记,可以是数字、序列号、文字、图像标志等标识或信息,一般包括所有者的标记或代码,以用能证实用户合法拥有数据的用户代码等根本信息,将它秘密地内嵌到数字产品中可能帮助识别确定产品的内容、著作权、使用权、完整性等。
水印技术与传统的信息加密都是把信息的保护转化为对密钥的保护。
因此,水印技术沿袭了传统加密技术的一些根本思想和概念,但两者采用的保护信息手段不同:
传统的加密算法一般是基于文本数据设计的,它把一段有意义的数据流转换成看起来没有意义的数据,如DES〔DataEncryptionStandard〕和RSA〔以三个发明者的首位字母命名〕。
由于将明文数据加密成密文数据,使得在网络传递过程中非法拦截者无法从中获得信息,从而达到某某的目的。
虽然,我们可以把媒体数据作为文本数据流一样看待,使用传统的加密算法进展加密,但是,多媒体数据流具有的特性与文本数据的特性有很大不同。
因此,目前的传统加密方法如DES、3-DES或RSA等也很难满足多媒体应用中的实时性等要求。
而数字水印技术如此是把一个有意义的信息隐藏在另一个称为载体信息的公开信息中,而可能的监测者或非法拦截者难以从公开信息中判
断某某信息是否存在或截获某某信息,从而保证某某信息的安全。
从信号处理的角度看,在载体图像中嵌入数字水印可以视为在强背景〔即原始图像〕下叠加一个视觉上看不到的弱信号〔水印〕,由于人的视觉系统〔HVS〕,分辨率受到一定的限制,只要叠加信号的幅度低于HVS的比照度门限,HVS就无法感觉到信号的存在,因此,通过对载体对象作一定的调整,就有可能在不引起人感知的情况下嵌入一些信息。
所有水印系统都包括两个根本的构造模块:
水印嵌入模块和水印提取或检测模块。
数字水印技术实际上是通过对水印载体媒质的分析、嵌入信息的预处理、信息嵌入点的选择、嵌入方式的设计、嵌入调制的控制等几个相关技术环节进展合理优化,寻求满足不可感知性安全可靠性稳健性等诸条件约束下的最优化设计问题。
水印嵌入模块就是把水印信号w嵌入到原始图像I,从而得到含水印信号Iw。
水印嵌入过程如图2.1所示。
图2.1水印嵌入框图
水印提取或检测就是判断某一数据中是否含有指定的水印信号,并可能恢复出水印信息。
提取或检测算法主要是设计一个相应于嵌入过程的检测算法。
检测的结果或是原水印〔如字符串或图像等〕,或是基于统计原理的只能判断水印存在与否。
检测方案的目标是使错判与漏判的概率尽量小。
为了给攻击者增加去除水印的难度,目前大多数水印制作方案都在水印参加、提取时采用密钥,只有掌握密钥的人才能读出水印。
水印的提取过程如图2.2所示,检测过程如图2.3所示。
图2.2水印提取框图
图2.3水印检测框图
离散余弦变换〔DiscreteCosineTransform〕属于正交变换图像编码
方法中的一种。
正交变换图像编码始于1968年。
当时安德鲁斯〔Andrews〕等人发现大多数自然图像的高频分量相对幅度较低,可完全舍弃或者只用少数码字编码,提出不对图像本身编码,只对其二维傅立叶〔DFT〕系数进展编码和传输。
但DFT是一种正交变换,运算量很大,常常使实时处理发生困难,第二年他们就用Walsh-Hadamard变换〔WHT〕取代DFT可以使运算量明显减少,这是因为WHT变换只有加减法而无需乘法。
但是更有意义的是离散余弦变换和离散正旋变换的出现,它们具有快速算法,准确度高。
其中最重要的是1974年提出的DCT,因为其变换矩阵的基向量很近似于托伯利兹矩阵
的特征向量,而托伯利兹矩阵又表现了人类语言与图像信号的相关性。
因此,DCT常常被认为是语音与图像信号变换的准最优变换。
图像是二维的,所以在研究时主要用到二维DCT,以与二维IDCT来对
图像进展处理。
2.2.1离散余弦变换〔DCT〕的定义
数字图像X〔m,n〕是具有M行N列的一个矩阵。
为了同时减弱或去除
图像数据相关性,可以运用二维DCT,将图像从空间域转换到DCT变换域。
根据定义,二维离散余弦变换〔DCT〕定义如下:
Y(k,l)=2
MNM-1N-1c(k)c(l)ååX(m,n)cos(2m+1)kp
2Mcos(2n+1)lp
2N
(1)
m=0n=0
式中
m,k=0,1,„,M-1;n,l=0,1,„,N-1。
ì其中函数c(k)=í
î1
ì1c(l)=í
î12k=02k=0k=1,2,K,M-1
k=1,2,K,N-1
二维逆离散余弦变换〔IDCT〕的定义如下:
X(m,n)=2
MNM-1N-1ååK=0L=0c(k)c(l)Y(k,l)cos(2m+1)kp2Mcos(2n+1)lp
2N
(2)
式中:
m,k=0,1,„,M-1;n,l=0,1,„N-1。
在基于DCT的变换编码中,图像是先经分块〔8×8或16×16〕后再经
DCT,这种变换是局部的,只反映了图像某一局部的信息。
当然也可以对整幅图像的特点,但是运算速度比分块DCT要慢。
图像经DCT后,得到的DCT图像有三个特点:
一是系数值全部集中到0值附近〔从直方图统计的意义上〕,动态X围很
小,这说明用较小的量化比特数即可表示DCT系数;
二是DCT变换后图像能量集中在图像的低频局部,即DCT图像中不为零
的系数大局部集中在一起〔左上角〕,因此编码效率很高。
三是没有保存原图像块的精细结构,从中反映不了原图像块的边缘、轮
廓等信息,这一特点是由DCT缺乏时局域性造成的。
图像DCT变换后大局部参数接近于零,只有左上角的低频局部有较大的
数值,中频局部参数值相对较小,而大局部高频参数值非常小,接近于零。
2.3.1简介
Matlab是当前在国内外十分流行的工程设计和系统仿真软件包。
它是
MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一人方便的、界面友好的用户环境。
Matlab的推出得到了各个领域专家、学者的广泛关注,其强大的扩展功能为各个领域的应用提供了根底。
由各个专家学者相继推出了MATLAB工具箱,其中的信号处理(signalprocessing)、控制系统(controlsystem)、神经网络(neuralnetwork)、图像处理(imageprocessing)、鲁棒控制(robustcontrol)、非线性系统控制设计(nonlinearsystemcontroldesign)、系统辨识(systemidentification)、最优化(optimization)、模糊逻辑(fuzzylogic)、小波(wavelet)、通信(munication)、统计(statistics)等工具箱,这些工具箱给各个领域的研究和工程应用提供了有力的工具,借助于这些“巨人肩上的工具〞,各个层次的研究人员可直观、方便地进展分析、计算与设计工作,从而大大地节省了时间。
①集成了DCT、DWT等函数有丰富的小波函数和处理函数,这不仅方便了研
究人员,而且使源程序简洁明了、易实现。
②强大的数学运算功能。
能够方便、高效地实现音频、视频中的大量矩阵
运算。
③提供了图像处理工具箱、小波分析工具箱、数字信号处理工具箱。
用来
编制跨数字图像处理技术、数字信号处理等多学科的数字水印技术是非
常好的选择。
④MATLAB与目前最强大的编程工具——VisualC++具有良好的接口。
2.3.3MATLAB函数介绍
在介绍函数之前,我们必须明确一点:
作水印程序时,处理的图像数据是二维信号,而声音信号是一维信号。
这里,我们仅仅简单介绍与水印有关的函数。
①数据输入输出函数
imread〔〕和imwrite〔〕:
可以读写bmp,jpg/jpeg,tif/tiff,png,hdf,pcx,wxd格式文件。
读索引文件时,还可以得到相应的调色板数据。
auread〔〕、auwrite〔〕、wavread〔〕和wavwrite〔〕:
可以方便地读写au和wav文件,并可控制其中的位与频率。
②图像显示
imshow():
显示一幅图像;imfinfo():
可以得到读入图像的信息。
如文件的大小、格式、格式版本号、图像的高度、宽度、颜色类型〔真彩色,灰度图还是索引图〕等。
③变换频函数
对信号采用不同的变换,是实现频域法水印的至关重要的一步,MATLAB
中对一维信号和二维信号分别提供了各种变换和逆变换函数。
u离散余弦变换〔DCT〕
dct(),dct2():
分别实现一维信号和二维信号的DCT〔离散余弦变换〕;
idct(),idct2():
分别实现一维信号和二维信号的IDCT〔逆向离散余弦变换〕;
④攻击函数
对算法进展攻击测试是对水印鲁棒性检测的一种重要手段,一个好的水印算法必须经过各种攻击测试才能对之做出客观的评价。
MATLAB中的许多函数可以直接用来做攻击测试。
剪裁:
imcrop()可以按准确定位的各点坐标进展剪裁;
jpeg压缩:
imwrite()中jpg和quality参数能对图像进展可控jpg压缩;
加各种噪声:
imnoise()可以对图像参加各种噪声,如白噪声、椒盐噪声等,
参加噪声是对水印鲁棒性考验的一种常见的攻击;
放大/缩小:
imresize()可以以指定的插值方法来对图像进展放大和缩小3系统实现
设X=f〔x,y〕为原始宿主图像,大小为Mc×Nc;flag为水印图像,大小为
Mm×Nm。
Mc、Nc分别是M
'm、Nm的偶数倍。
水印的嵌入步骤如下:
''Step1:
将原始宿主图像分成互不覆盖的子块,块的大小为8x8,记为Xm=fm(x,'y)。
其中m=1,2,„,〔Mc/8〕x(Nc/8),0≤x,y≤8。
mStep2:
并根据载体图像的块数,将大小为M
覆盖的子块,块的大小为〔M、Nm水印图像w(x,y)分成互不'x8/Mc〕x(Nmx8/Nc),记为Wm=wm(x,my)。
'
Step3:
将载体图像块逐一DCT变换,记为
Ym=DCT(Xm)=Fm〔u,v〕,
其中Fm(u,v)为第m个图像离散余弦变换后空间频率〔u,v〕处的大小。
Y为从Fm(u,v)中频选出的加载的位置,1≤r≤〔M
为水印Wm=wm(x,''mx8/Mc〕x(Nmx8/Nc);Wb(r)y)位置坐标。
按照加法准如此,将水印块嵌入其中。
公式如下:
Y'
r=aWb(r)。
'其中,a为强度因子,然后用Yr来代替嵌入水印后的DCT中频系数。
Step4:
对各子块DCT反变换,得到嵌入水印后的图像X=f'(x,y)。
'
水印提取是水印算法中的关键局部,是水印嵌入的逆过程。
水印提取过程如下:
首先将含水印图像分别分成互不覆盖的子块,块的大小为8×8,记为X’m=f’(x’,y’)。
其中m=1,2„,〔Mc/8〕x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 水印 课程设计