❶ 数字水印的水印算法
近年来,数字水印技术研究取得了很大的进步,下面对一些典型的算法进行了分析,除特别指明外,这些算法主要针对图像数据(某些算法也适合视频和音频数据)。 该类算法中,大部分水印算法采用了扩展频谱通信(spread spectrum communication)技术。算法实现过程为:先计算图像的离散余弦变换(DCT),然后将水印叠加到DCT域中幅值最大的前k系数上(不包括直流分量),通常为图像的低频分量。若DCT系数的前k个最大分量表示为D=,i=1 ,… ,k,水印是服从高斯分布的随机实数序列W =,i=1 ,… ,k,那么水印的嵌入算法为di = di(1 + awi),其中常数a为尺度因子,控制水印添加的强度。然后用新的系数做反变换得到水印图像I。解码函数则分别计算原始图像I和水印图像I*的离散余弦变换,并提取嵌入的水印W*,再做相关检验 以确定水印的存在与否。该方法即使当水印图像经过一些通用的几何变形和信号处理操作而产生比较明显的变形后仍然能够提取出一个可信赖的水印拷贝。一个简单改进是不将水印嵌入到DCT域的低频分量上,而是嵌入到中频分量上以调节水印的顽健性与不可见性之间的矛盾。另外,还可以将数字图像的空间域数据通过离散傅里叶变换(DFT)或离散小波变换(DWT)转化为相应的频域系数;其次,根据待隐藏的信息类型,对其进行适当编码或变形;再次,根据隐藏信息量的大小和其相应的安全目标,选择某些类型的频域系数序列(如高频或中频或低频);再次,确定某种规则或算法,用待隐藏的信息的相应数据去修改前面选定的频域系数序列;最后,将数字图像的频域系数经相应的反变换转化为空间域数据。该类算法的隐藏和提取信息操作复杂,隐藏信息量不能很大,但抗攻击能力强,很适合于数字作品版权保护的数字水印技术中。
1. 基于离散余弦变换的数字水印
最早的基于分块DCT水印技术出现于E Koch,J Zhao的文献。针对静止图像和视频压缩标准(JPEG和MPEG),他们的水印方案中图像也被分成8×8的块,由一个密钥随机的选择图像的一些分块,在频域的中频上稍微改变一个三元组以隐藏二进序列信息。选择在中频分量编码是因为在高频编码易于被各种信号处理方法破坏,而在低频编码则由于人的视觉对低频分量很敏感,对低频分量的改变易于被察觉。未经授权者由于不知道水印嵌入的区域,因此是很难测出水印的,此外,该水印算法对有损压缩和低通滤波是鲁棒的。将图像分割成8×8块,并对每个块做DCT变换,然后随机选择构造所有块的一个子集,对子集的每一个块,选择一组频率并嵌入二进制水印信息。由于频率组的选择不是基于最显着分量,并且频率系数的方差较小,因此该方法对噪声、几何变形以及多文档攻击比较敏感。
Cox等人于1995年提出了基于图像全局变换的水印方法,称之为扩频法。这也是目前大部分变换域水印算法中所用到的技术。它将满足正态分布的伪随机序列加入到图像的DCT变换后视觉最重要系数中,利用了序列扩频技术(SS)和人类视觉特性(HVS)。算法原理为先选定视觉重要系数,再进行修改,最常用的嵌入规则如下:
其中分别是修改前和修改后的频域系数,α是缩放因子,是第i个信息位水印。
一般说来,乘法准则的抗失真性能要优于加法准则。水印的检测是通过计算相关函数实现的。从嵌入水印的图像中提取出是嵌入规则的逆过程,把提取出来的水印与原水印作相似性运算,与制定的阈值比较,可确定是否存在水印。这是稳健性水印的奠基性算法。
Chiou-Ting Hsu等人提出一种基于分块DCT的水印,他们的水印是可辨识的图像,而不是简单的一个符号或一个随机数。通过有选择地修改图像的中频系数来嵌入水印。验证时,衡量提取出的水印同原水印之间的相似性来判断是否加入了水印
2. 基于离散小波变换的数字水印
与传统的DCT变换相比,小波变换是一种变分辨率的,将时域与频域相联合的分析方法,时间窗的大小随频率自动进行调整,更加符合人眼视觉特性。小波分析在时、频域同时具有良好的局部性,为传统的时域分析和频域分析提供了良好的结合[6]。
目前,小波分析已经广泛应用于数字图像和视频的压缩编码、计算机视觉、纹理特征识别等领域。由于小波分析在图像处理上的许多特点可用于信息隐藏的研究,所以这种分析方法在信息隐藏和数字水印领域的应用也越来越受到广大研究者的重视,目前已经有很多比较典型的基于离散小波变换的数字水印算法。
除了上述有代表性的变换域算法外,还有一些变换域水印算法,它们中有相当一部分是上述算法的改进及发展。
总的来说,与空域的方法相比,变换域的方法具有如下优点:
(1) 在变换域中嵌入的水印信号能量可以分布到空域的所有像素上,有利于保证水印的不可见性;
(2) 在变换域,人类视觉系统(HVS) 的某些特性(如频率掩蔽特性)可以更方便地结合到水印编码过程中,因而其隐蔽性更好;
(3) 变换域的方法可与国际数据压缩标准兼容,从而易实现在压缩域(compressed domain) 内的水印算法,同时也能抵抗相应的有损压缩。 人的生理模型包括人类视HVS(HumanVisualSystem)和人类听觉系统HAS。该模型不仅被多媒体数据压缩系统利用,同样可以供数字水印系统利用。利用视觉模型的基本思想均是利用从视觉模型导出的JND(Just Noticeable Difference)描述来确定在图像的各个部分所能容忍的数字水印信号的最大强度,从而能避免破坏视觉质量。也就是说,利用视觉模型来确定与图像相关的调制掩模,然后再利用其来插入水印。这一方法同时具有好的透明性和强健性。
❷ 基于DCT数字水印算法的Matlab实现源代码
读取图片
读取水印图片(二维码)
原图片做成灰度
水印图做成二值图
原图做8*8DCT处理
选择DC成分以外的元素(每个8*8块里选择1个元素)
生成伪随机乱数
根据乱数做成密钥
将水印图根据密钥与算法嵌入到第6步骤
嵌入后将每个元素替换原来的第6步元素
做反变换
图片保存,嵌入完毕
提取
读取嵌入水印后的图片
生成嵌入时的伪随机乱数(生成乱数之前可以加一些几何攻击)
根据乱数做成密钥
嵌入水印后的图片做8*8DCT处理
选择DC成分以外的元素(选取跟原来嵌入时相同)
根据算法与密钥提取水印图
提取的水印图与原水印图做比较
保存提取的水印图,提取完毕
❸ 求一个基于DCT的数字水印的C/C++算法
中去不是把隐藏信息加入到图像的数据中去,而是通过对数据进行一定得变化使得这些数据通过一定得算法反映出水印信息
不知道你的数字水印需不需要原稿,如果需要,那很简单,只要你将原来图像的某一位置(根据算法和密钥决定)的值变化一下,比如
Y=(1-a%)X,Y表示添加后的该位置的值,X表示原来的,a%表示变化强度,对a%的加减反映添加的具体数值(添加的数值只有0或1),你可以用+a%表示添加了1,用-a%表示添加了0,这样就可以将隐藏信息先转化成一段01代码,再通过上述方法添加到图像中,检测室通过与原稿的对比,那些地方多了a%X就是添加了1,烧了a%X就是添加了0
至于不需要原稿的数字水印,是通过先后选择的两个位置的比较完成的,也就是大于小于来决定添加0还是添加1
另外,站长团上有产品团购,便宜有保证
❹ dct和小波变换有什么关系 是一个东西么
DCT是离散余弦变换,基于DCT与小波变换的数字水印算法都是将空域的图像数据转到频域中去,然后在频域中添加数字水印,但DCT与小波变换算法是不同的,因此两者转换的频域的特点不一样,并不是同一个东西。
离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。
小波变换(wavelet transform,WT)是一种新的变换分析方法,它继承和发展了短时傅立叶变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,是进行信号时频分析和处理的理想工具。它的主要特点是通过变换能够充分突出问题某些方面的特征,能对时间(空间)频率的局部化分析,通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求,从而可聚焦到信号的任意细节,解决了Fourier变换的困难问题,成为继Fourier变换以来在科学方法上的重大突破。
❺ 基于DCT的音频水印提取问题
音频信号是一次元信号,图像可以看做2次元信号。
需嵌入图像做降维。
而你的DCT嵌入部分是有问题的。
你这个程序比较更适合扩频嵌入,而且,选着信号也有点问题。
DCT嵌入是,做完DCT在选着频段嵌入的。而你的这个代码是,选着频段然后嵌入,然后做整体做DCT,在整体的嵌入,这样没有多要意义。
没间隔9个采样点然后提取一个信号,也就是10个一循环。这本身就是一种选着频段要嵌入的手段了,而对他做DCT,你不论是在DC分量还是AC分量均嵌入水印。这样是没有意义的。而且嵌入效果很不好。
我建议你,将信号分段,然后在做DCT,在AC分量中选着前第1/4个频段嵌入水印,这样效果会更好一些,而且代码简单,容易实现嵌入与盲提取。
你的代码,需要原信号。。。。。而且,做得很复杂,效果也不理想。
建议:将音频信号分组,比如每20个分成一组,然后做DCT,做完DCT的第一个元素是DC分量,不要在这里嵌入,选着第3或第4这元素吧,然后通过算法嵌入吧(算法能够决定是否能够盲提取)。越往后对压缩的鲁尔性越差。注意一点不要选着分段DCT的接近1/2或以后的元素,因为这个部分要在压缩的时候被删除的。
还有,起切的信号段有问题。首先,不要从开始阶段剪切,你剪切的信号,前面有一段是空白的,你在空白信号段里嵌入了很多情报,选着剪切原信号的时候,在开始几秒后选着在剪切,这样避免开始信号过于弱而导致嵌入水印不理想的问题。
做DCT滴定要分段,你的很多嵌入算法都超出程序给定的最大值,所以会出现这样问题。
要知道,DC值是很大的,几乎所以的信息都集中在DC分量中,所以,做DCT量越多DC值就越大。而且能够嵌入的频段会变的有限。
做实验的时候不能只用一个原信号做实验,选着原信号也是很重要的。比如你选的是开始段(前面183个元素是0也就是空白段)这段信号是比较弱的,“单纯”的,选着这个段嵌入效果不是很好的,需要做进一步处理,比如扩频等处理。建议你选着歌曲的高潮或接近高潮部分。而且你选择的有点长,建议减半吧。
❻ 毕业论文 “基于DCT变换的图像数字水印算法”
既然是毕业论文就别偷懒了。这个题目很简单。也就是和傅立叶变换的卷积差不多吧
❼ 求以下基于DCT水印的嵌入算法和水印提取的算法,在matlab中运行的代码是怎样的呢这是一种dct改进算法
非常感谢你的回答。谢谢
❽ 基于DCT算法进行数字水印提取
其实程序的问题不大,主要是你的算法鲁棒性太差,只在dct变换后找了一位来和原图作比较,在经过高斯噪声后,频域上的值已经基本上不能反映你的水印信息了。所以你出来的图就没有信息了。建议你修改算法,主要是找到高斯噪声后也不太受影响的信息。
❾ 求个《 DCT域数字图像的水印加载与提取》的毕业论文,包括源代码注释,给高分!
较早利用分块DCT的水印技术是Koch.E、Zhao.J的文章[1],他们的水印方案是用一个密钥随机的选择图像的一些分块,在频域的中频上稍稍改变一个三元组来隐藏二进制序列信息。这种方法对有损压缩和低通滤波是稳健的。Cox等[2]提出了着名的基于图像全局变换的数字水印技术,该方案对整个图像作离散余弦变换(DCT),然后将水印嵌入到预先设定的低频分量中,水印信号由高斯分布的实数序列组成,算法不仅在视觉上具有不可察觉性,而且稳健性也非常好,可经受JPEG压缩、滤波、剪切等攻击。Barni等[3]提出一种利用HVS掩蔽特性的基于DCT的水印算法,在水印嵌入阶段,对的图像进行的DCT变换,对DCT系数按Zig-Zag扫描重新排列为一维向量,留下向量中开始的L个系数不作修改,对第L个系数后面的M个系数进行修改以嵌入水印。黄继武等人[4]在对DCT系数DC和AC分量的定性和定量分析的基础上,指出DC分量比AC分量更适合嵌入水印,嵌入DC分量的水印具有更好的稳健性,并提出了一个利用DC分量的自适应算法。
以上算法至少有以下两个缺点:①在水印提取过程中使用了原始图像,这一点在实时的网络环境中很难做到;②只能给出水印存在有无的回答,在许多应用场合要求水印是有意义的,如一个二维图像(商标、印鉴等)。显然,这种有意义的水印所包含的信息量、可感知性、可辩识性及保密性,是无意义的伪随机噪声所不能比拟的。
本文在研究了前人算法的基础上,提出了一个利用块分类的DCT域自适应扩频图像水印算法,嵌入的水印是一个可视二值图像。用两个不相关的伪随机序列分别代表水印信息中的0和1,从而达到扩频的目的,将扩频后的水印信号,嵌入到分块DCT域的中低频段系数中。在嵌人过程中充分考虑到了局部图像的复杂度,能够自适应地调整嵌人强度,水印检测算法不需要原始图像,实现了盲检测。仿真实验表明:图像经过JPEG有损压缩、低通与中值滤波、剪切等图像处理操作后仍是稳健的。
❿ DCT域的数字水印技术有哪些优越性
数字水印是指以可感知或不可感知的形式嵌入到数字多媒体产品中、用于版权保护、内容检验或提供其它信息的信号。数字水印技术以其特有的优越性可以应用在诸多领域,具有重要的应用意义和实用价值。 本文通过对现有的一些数字水印算法以及分形、小波、离散余弦变换理论和JPEG、JPEG2000压缩标准的学习和研究,提出了几种数字水印算法: 一、基于小波变换和分形理论的数字水印算法,有效的缩减了传统分形编码方法嵌入水印所需时间。 二、DCT域基于改进的线性内插的鲁棒性数字水印算法,该方法对于JPEG有损压缩等处理操作具有一定的鲁棒性。 三、基于线性内插的可见性数字水印算法,解决了可见水印需要隐藏的信息量大的问题,并且对于一些常见的图像处理操作具有一定的鲁棒性。 四、适合于JPEG2000的鲁棒性数字水印算法,该算法对于JPEG2000有损压缩具有较好的抵抗能力。