数字水印算法的C++实现

合集下载

数字水印技术

数字水印技术

9.1.4 数字水印的分类
(2)按感知特性划分:
不可感知水印(不可见水印):人的感观不能感知 嵌入的水印,不影响作品的质量,具有较高的使用 价值 可感知水印(可见水印):可觉察数字水印嵌入到 载体后会在媒体中留下明显的印记,主要用于标识 版权,防止非法使用,虽然降低了资料的商业价值, 却不妨碍使用者的使用,如电视台的台标等。
数字水印应具有如下的基本特征:

不可感知性 水印容量 鲁棒性


可证明性
安全性
数字水印的安全性与密码系统的安全性非常类似,即水印嵌入的算 法是公开的,安全性建立在密钥管理基础上,只有拥有密钥才能提 取水印。数字水印系统一般使用一个或多个密钥来确保水印安全。
9.1.3 数字水印系统的组成



可证明性 安全性
9.1.2 数字水印的基本特征
数字水印应具有如下的基本特征:

不可感知性 水印容量 鲁棒性 可证明性
数字水印算法能够正确识别出被嵌入到保护对象中的有关信息,例
如经过注册的用户编码、产品的标识或者其他任何有意义的文字等, 并且在需要时将其提取出来作为证据。

安全性
9.1.2 数字水印的基本特征
Playback control
Record control
Illegal copy
Non-compliant recorder
应用领域(4)——数字指纹
Distributed copies Digital fingerprints Users
Original image
应用领域(5)——内容验证
数字水印应具有如下的基本特征:

不可感知性
对不可感知的数字水印来说,是指加入数字水印后不会改变数字产 品的感知效果,即感知不到数字水印的存在。

数字视频水印的几种DCT算法的实用研究 (文稿)经一平

数字视频水印的几种DCT算法的实用研究 (文稿)经一平

数字视频水印的几种DCT算法的实用研究(经文稿)[前言]水印在时域中嵌入很容易被擦去,为了追求其鲁棒性,以便在数字版权管理中获得应用,都采用在频域中嵌入水印信息的算法。

实际的数字视频水印不可能脱离节目的生产环境。

由于视频节目在储存时都需DVI格式转换成压缩编码格式,在进行节目编排和处理时再转换成DVI格式,这种转换在节目制作过程中会反复多次,多次经过编解码卡,广播级编解码卡会使图像轻微损失,由于控制在一定的范围内,并不会影响播出的质量。

要保持水印在制作与对手的攻击中不丢失信息,就要把信息保持在这些频域分量中,隐藏而不被解读。

这就使得数字视频水印的嵌入和检测与编码的格式密切相关。

本文介绍的是与MPEG2相关的水印算法。

[DCT算法的原理]在被MPEG2处理的图像序列中,一个亮度宏块由16个小块构成,每个块为一个8X8个数据阵列。

每个块是进行DCT变换的单位。

水印的嵌入与检测按下述步骤进行1)一般选择在I 进行,也可选择在所有帧进行2)一个块嵌入一位信息,块可以通过选定的算法来选取。

3)水印信息嵌入在DCT系数中,由算放来确定哪几个DCT系数图1 DCT算法的原理嵌入的操作过程1)在编码过程中嵌入按MPEG2 压缩编码过程,在DCT变换后,选择水印嵌入算法,在DCT系数中嵌入水印信息。

这种方法要把算法一同做在编/解码器中。

发展中的水印算法要加盟各种成熟的MPEG2编/解码器,不是立竿见影的选择。

2)在编码器后加入面对MPEG2的码流,必须在自己的实用水印系统中建立解码与编码环境,这是一件工作量较大而又必须做的工作。

至少要解读PES包,使DCT系数呈现出来,按选定的算法与水印信息进行修改,再通过编码环境形成嵌入的MPEG2码流。

这个方法的好处是避开了编码器,任何MPEG2的码流都可以嵌入。

图2在MPEG2编码器后加入水印信息时码流的变化[几种DCT算法的介绍与比较]在基本的架构确定之后水印的算法可在三个方面去尝试:1)嵌入块位置与大小的选择,对与某种算法,须选择合适的位置。

数字水印概况

数字水印概况

数字水印概况随着因特网的日益普及,多媒体信息的交流和发布形式愈加丰富了。

人们可以通过因特网发布自己的作品、重要信息和进行网络贸易等,但是随之而出现的问题也十分严重:如作品侵权更加容易,篡改也更加方便。

因此如何既充分利用因特网的便利,又能有效地保护知识产权,已受到人们的高度重视。

这样就诞生了一门新兴的交叉学科--信息隐藏学。

1、信息隐藏信息隐藏(Information Hiding)不同于传统的密码学技术。

密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密码形式(密文)进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息中,然后通过公开信息的传输来传递机密信息。

对加密通信而言,可能的监测者或非法拦截者可通过截取密文,并对其进行破译,或将密文进行破坏后再发送,从而影响机密信息的安全;但对信息隐藏而言,可能的监测者或非法拦截者则难以从公开信息中判断机密信息是否存在,难以截获机密信息,从而能保证机密信息的安全。

多媒体技术的广泛应用,为信息隐藏技术的发展提供了更加广阔的领域。

待隐藏的信息为秘密信息(secret message),它可以是版权信息或秘密数据,也可以是一个序列号;而公开信息则称为载体信息(cover message),如视频、音频片段。

这种信息隐藏过程一般由密钥(Key)来控制,即通过嵌入算法(Embedding algorithm)将秘密信息隐藏于公开信息中,而隐蔽载体(隐藏有秘密信息的公开信息)则通过信道(Communication channel)传递,然后检测器(Detector)利用密钥从隐蔽载体中恢复/检测出秘密信息。

信息隐藏技术主要由下述两部分组成:(1)信息嵌入算法,它利用密钥来实现秘密信息的隐藏。

(2)隐蔽信息检测/提取算法(检测器),它利用密钥从隐蔽载体中检测/恢复出秘密信息。

在密钥未知的前提下,第三者很难从隐秘载体中得到或删除,甚至发现秘密信息。

基于LDPC码的数字图像水印技术研究与利用

基于LDPC码的数字图像水印技术研究与利用

Vo _ 6 N . l2 o 6
De . 2 o c 06
文章编号 :6 35 3 (0 6 0 . 7 -5 17 -49 20 )6 0 70 0
基于 L P D C码的数字 图像水 印技术研 究与利用
霍 智 勇
( 南京邮电大学 传媒技术学院 , 江苏 南京 200 ) 103
维普资讯
第2卷 第6 6 期
20 06年 1 2月
南 京 邮 电 大 学 学 报 ( 自 然 科 学 版 ) Jun l f aj gU i rt o ot adT l )mu i t n( a r cec ) o ra o ni nv s y f s n e m n ai s N t a S i e N n e i P s c o ul n

要: 主要研 究 了 L P D C码在数字水 印中的应 用。 图 水印 系统和通信 系统的模 式具有相似性 , 一 像 对
种基于L P D C码的图像数字水印算法进行了研究。谊算法利用 L P D C码的纠错性能和图像的人眼
视 觉特 性( V ) 以实现静止 图像 中数 字水 印的嵌入 和提 取。 实验 结果表 明, H S, 该算 法降低 了水印 在传输过程 中的差错 率, 具有很 强 的鲁棒性和隐 匿性。
o h a i o DP o ei su id T e ag r h e e sa d rt e e h ae ak s n tr no a d o to nteb ss f L C c d S tde . h o tm mb d er v ste w tr r i aueit n u f l i n i m g h tt i g ye lyn h D C c d h oo ya u n vs a c a ce t s h eut d mo - tesai ma e b mpo igteL P o e tc n lg d teh ma iu h a trs c .T e rs l e n c e n h l r i i s srt a h rp s dag r h h ral era e h ro o ert f h ere e ae ak a d i rv d t e t ttepo oe o tm a ge t d ce sd teerrcd aeo ert v d w tr r n mp o e a h l i s y t i m terb sn s d ivsbly h o u te sa n iiit. n i

基于电子印章的数字水印算法的实现

基于电子印章的数字水印算法的实现

基于电子印章的数字水印算法的实现谭慧【摘要】互联网和传统业务体系的结合让人们可以快速便捷足不出户办理各类证件、处理公文,但是个人的私密文件、账户信息、信用资料等在互联网上也很容易被非法获取或者篡改.本文设计出一种基于电子印章的数字水印算法,基于传统的图像置乱加密方法进行改进.实验证实改进后算法的抵抗图像压缩能力较强,隐蔽性较好,鲁棒性较高,适合电子印章的应用.【期刊名称】《电脑与电信》【年(卷),期】2018(000)006【总页数】4页(P16-19)【关键词】数字水印;电子印章;算法【作者】谭慧【作者单位】湖南汽车工程职业学院,湖南株洲 412001【正文语种】中文【中图分类】TP309.71 设计背景近年来,从电子商务到共享汽车,从远程教育、网络学习到大数据、云计算等等,“互联网+”新型经济在中国遍地开花。

2018年政府工作报告中有7处再次谈及“互联网+”这一经济热词,例如深入开展“互联网+”行动、推行“互联网+政务服务”、发展“互联网+农业”[1]……网络的兴起和迅速发展,促进了社会公众“互联网+政务服务”的需求。

为了适应这种背景和经济运行方式的变革,政府大力推动电子政务建设。

电子政务依赖于以互联网为中心的各类硬件设备,例如运算控制设备、加密解密设备、数据存储设备等,同时还需要各类数据库系统、操作系统等系统支撑。

其中有一个重要的办公流程就是电子公文。

电子公文是一种电子数据,传统的纸质公文通过电子公文传输系统处理后就变成了有规范格式的电子公文[2]。

一般电子公文分为两类,一类是规范性公文,即通用公文,俗称“红头文件”[3];另一类是非规范性公文,主要指通知类、讲话类等公文。

为了保证电子公文的准确性和真实性,我们设计出一种基于电子印章的数字水印算法。

2 电子印章系统架构及思路2.1 印章系统架构整个电子印章系统从物理结构上来说包括电子印章系统后台和客户端空间访问接口两部分。

其中后台由后台数据库、中间转接层和其它模块组成,所有用户通过中间转接层访问后台数据库,所有的访问信息将放在后台数据库中。

英文文本多重数字水印算法设计与实现

英文文本多重数字水印算法设计与实现

[ src] F rh eiinyo urn dgtl tr rigmehd o nl htxste a e rp ss lpetx wa r rigmehd Abta t o edf ec f r t ii emakn to s r gi t.h p r o oe mut l e t t makn to t c c e a wa f E s e p p a i e
维普资讯
第 3 卷 第 l 2 5期
V L3 o 2




工 程
20 06年 8月
Aug t 00 us 2 6

l s
Co p t rEn i e rn m ue gn eig
安全技 术 ・
 ̄Imq.l t_ 2( 0) —0 6 ) - 0 卜 3 8 06 5 _ 4_ 3 文献标识码:A - 0 4 2 l l 一
wh c sb s d on t ec a a tr ’ t i u e a d t e wo ds c t n Th sme h d c n ma e a h g o t i ft e wae ma k n o h t e n . h ih i a e h h r c e s a t b t n h r ’ one t r i t o a k u ec n a n o t r r i g, n t e o h r h ha d t e wae ma k ngc n b i e fe tv l . o e e , t a t n b l y o si g a d c r c i g t ewaer r i g a t rt ede t r r i a eh d d e c i e y M r ov r i sas r g a i t ft t n ore t h t ma k n f h mol h ngm a e t h h o i e n n e i i d o t e s t x on e to h tr r i g b ta k r t c i g e p rme t h v h wn t a h t r r i g h sf g o b l y of o u t e s e t c t n r e wa e ma k n y a tc e s At k n x e i n s a es o t a t e wa e ma k n a o d a i t b s n s . h t l i r

基于遗传算法的数字水印算法研究


0 引 言
遗 传算 法 ( G e n e t i c A l g o r i t h m,G A) 是 近几 年 发 展 起来 的一 种全 局 优 化算 法 。 1 9 6 2年 霍 兰德 ( H o 1 .
提取参考点集 H 计算特征椭 圆卜 一I 获取椭圆三元组
设置水 印 H 估计变换参数 l — 匹配参考点
择、 遗传 、 变异等作用机制 , 提高各个个体的适应性。
1 遗传算 法的水 印算法分析
1 . 1 水 印算法框 架
数 字水 印 ( D i g i t a l Wa t e r m a r k ) 技 术是 将 与多 媒
体内容相关或不相关 的一些标示信息直接嵌入多媒 体内容当中, 但不影响原内容的使用价值 , 并不容易
用 遗传 算 法 在 经 受 几 何 攻 击 后 的含 水 印 图 像 上 搜 索, 获 得与适 应 度 函数 取 得 最 大值 对 应 的 含水 印 图 像 的参 考 三元组 后 , 借 助原 始 图像 参 考 三 元组 可 以 估计 出含水 印图像所 遭受 几何 攻击 的变换 参 数 。 根据数 字水 印 问题 的实 际情 况 , 参 考 三元 组 应 该满 足稳 定性 的需 要 , 即参 考 点应 当对 压 缩 、 滤波 、
的参考 点集合 , 不需要原始图像参考的情况下实现水 印的嵌入 与检测。实验表 明, 该算法不仅 能抵抗几何 攻击 , 而
且对一般 的图像处理操作也具有鲁棒性 。
【 关键词 】 遗传算法 ; 数字水印; 算法研 究
Di g i t a l Wa t e r ma r k i n g Al g o r i t h m Ba s e d o n Ge n e t i c Al g o r i t m h i s S t u d i e d

数字水印技术及应用

经验与交流 计算机与信息技术 ·91·数字水印技术及应用龚翱 李曾妍 陈刚(湖南人文科技学院 计算机科学系,湖南 娄底 417000)摘 要 随着网络技术和媒体信息数字化的飞速发展,数字水印技术成为目前研究的热点。

本文介绍了数字水印的概念、原理和研究现状,并分析了常见的数字水印算法,最后讨论数字水印的应用领域,并展望了未来发展及研究方向。

关键词 数字水印;信息隐藏;算法1 引言随着信息时代的到来,特别是Internet 的普及,数字技术飞速发展。

数字媒体如图像、视频、音频等作品因其复制、篡改、非法传播非常容易,使得版权保护和信息安全问题日益突出。

为了保护知识产权,以往采用数据加密的方法,只有掌握密钥的授权用户才能解密并使用数据,但这种方法只能控制用户存取数据,与数据本身无关。

因此,人们又提出了数字信息产品版权保护和数据安全维护的新技术——数字水印(Digital Watermarking)。

2 数字水印的概念及原理数字水印技术是一种信息隐藏技术,它是在数字图像、音频和视频等数字作品中嵌入秘密信息,以便保护数字作品的版权、证明产品的真实可靠性、跟踪盗版行为或者提供产品的附加信息,其中的秘密信息可以是版权标志、用户序列号或者是产品相关信息。

一般,该秘密信息需要经过适当变换再嵌入到数字作品中,通常称变换后的秘密信息为数字水印[1]。

数字水印技术以其特定的优势,成为目前的一个研究热点,得到越来越广泛发展和应用。

图1 水印的嵌入、提取过程一个完整的数字水印系统应包含:水印的嵌入和水印的提取或检测。

水印嵌入算法利用对称密钥或公开密钥实现把水印嵌入到原始载体信息中,得到隐秘载体。

水印检测或提取算法利用相应的密钥从隐蔽载体中检测或恢复出水印,没有解密密钥,攻击者很难从隐秘载体中发现和修改水印。

水印的嵌入和提取如图1所示。

3 数字水印的主要特性(1)不可感知性。

也称隐蔽性,数字作品嵌入数字水印后,不会引起质量明显的下降,也不容易被察觉,即使采用统计的方法也不能提取或确定水印的存在。

基于图像处理技术的数字水印算法设计与研究

基于图像处理技术的数字水印算法设计与研究数字水印技术是一种保护图像版权和验证图像完整性的重要方法。

它将一些隐蔽的信息嵌入到图像中,使其对于普通观察者来说是不可见的,但可以通过特定的算法进行提取和验证。

在数字水印技术中,图像处理技术发挥着至关重要的作用,通过对图像进行处理和分析,实现对水印信息的嵌入和提取。

本文将重点讨论基于图像处理技术的数字水印算法设计与研究。

首先,我们需要了解数字水印算法的基本原理。

数字水印算法的基本思想是在图像的一些特定区域或者像素上嵌入一些隐蔽的信息,通过这些信息可以进行版权保护或者图像完整性验证。

常用的数字水印算法包括空域算法、频域算法和小波域算法等。

在基于图像处理技术的数字水印算法设计中,我们可以采用空域算法。

空域算法是利用原始图像的像素值进行水印信息的嵌入和提取。

其中,最常见的算法是Least Significant Bit(LSB)算法。

该算法将水印信息嵌入到图像的最低有效位中,由于改变最低有效位对图像的质量影响较小,水印较为隐蔽。

在水印提取时,只需要提取最低有效位即可得到水印信息。

虽然LSB算法容易实现和计算量较小,但是对于一些攻击手段,如图像压缩、裁剪等,容易使水印失效。

为了提高数字水印算法的鲁棒性,我们可以采用频域算法。

频域算法是通过对图像进行离散傅里叶变换(DFT)或快速傅里叶变换(FFT)得到图像的频谱信息,然后将水印信息嵌入到频谱信息中。

这样做的好处是,频谱信息对于一些图像处理操作具有较好的鲁棒性。

常用的频域算法包括基于幅值谱的算法和基于相位谱的算法。

基于幅值谱的算法将水印信息嵌入到图像频谱的幅度中,从而实现对图像的版权保护;基于相位谱的算法则将水印信息嵌入到图像频谱的相位中,用于图像的完整性验证。

频域算法相较于空域算法更具有鲁棒性,但其计算量较大。

除了空域算法和频域算法,我们还可以采用小波域算法。

小波域算法是将图像进行小波变换,然后将水印信息嵌入到小波系数中。

数字水印算法综述

数字水印算法综述作者:吴婷婷李星野倪时金来源:《电子世界》2012年第18期【摘要】针对数字水印技术研究的背景、目前研究成果、存在问题以及今后发展方向做了一个综述。

首先简要介绍数字水印的特点和应用,其次对提升小波的基本原理进行了阐述,同时对现有文献中的数字水印算法做了深入的分析对比,最后展望了数字水印的研究方向和应用前景。

【关键词】数字水印;提升小波变换;人类视觉系统(HVS);奇异值分解(SVD)1.引言随着信息媒体的数字化,特别是计算机网络的迅速发展和广泛应用,为信息的存取和传递提供了极大的便利,同时也提高了信息表达的效率和准确性。

但是随之而来的数字作品的版权问题和信息安全问题越来越引起人们的关注。

数字水印(digital watermarking)技术[1]作为新兴的信息安全技术,为解决数字作品的侵权问题提供了一个有效的解决途径。

近年来,数字水印技术研究取得了很大进展,并陆续提出了一系列优秀的水印嵌入算法。

进而关于彩色图像的水印嵌入算法、多功能水印嵌入算法等也相继出现,以及数字水印与其它技术相结合的研究也取得了一些重要成果。

这使得数字水印技术的应用越来越广泛而受到人们的关注。

2.数字水印技术2.1 数字水印概念数字水印技术[2]是利用数字作品中普遍存在的冗余数据与随机性,将数字、序列号、文字、图像标志等版权信息嵌入到被保护的数字作品本身中,通过检测和提取水印,可以标识和验证出数字化图像、视频和音频作品的作者、拥有者、发行者或授权消费者的信息,还可以追溯数字作品的非法传播,从而起到版权保护、秘密通信、数据文件的真伪鉴别和产品标识等作用。

水印技术中,隐蔽性和鲁棒性是最基本的要求,影响隐蔽性和鲁棒性的因素主要是水印的结构和嵌入方法。

水印容量与鲁棒性构成了一对基本矛盾,即嵌入的水印信息越多,算法的鲁棒性越差。

2.2 应用数字水印主要在以下几个领域[3]:(1)版权保护(2)篡改提示(3)票据、证件防伪(4)隐蔽通信2.3 数字水印典型算法数字水印算法大致可以分为两类:空域算法和变换域算法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验名称:数字水印算法实现数字水印算法的C++实现[摘要]通过在原始数据中嵌入秘密信息--水印来证实数据的所有权。

这种被嵌入的水印可以是一段文字、标识、序列号等,而且这种水印通常是不可见或不可察的,它与原始数据紧密结合并隐藏其中,并可以经历一些不破坏源数据使用价值或商用价值的操作而能保存下来。

数字水印技术除了应具备信息隐藏技术的一般特点外,还有着其固有的特点和研究方法。

在数字水印系统中,隐藏信息的丢失,即意味着版权信息的丢失,从而也就失去了版权保护的功能,也就是说,这一系统就是失败的。

由此可见,数字水印技术必须具有较强的鲁棒性、安全性和透明性。

本文是关于在24位宿主图像的文档说明。

[关键词]数字水印标识安全性宿主图像水印图像1. 算法实现思路1.1 数字水印的提出及研究现状1994年在一次国际重要学术会议上由Tirkel等人发表了题目为“A digital watermark”的第一篇有关数字水印的文章,当时他们已经意识到了数字水印的重要性,提出了数字水印的概念及可能的应用,并针对灰度图像提出了两种向图像最低有效位中嵌入水印的算法。

1996年在英国剑桥牛顿研究所召开了第一届国际信息隐藏学术研讨会,标志着信息隐藏学的诞生,而作为信息隐藏学主要分支之一的数字水印技术的研究也得到了迅速的发展。

到1999年第三届国际信息隐藏学术研讨会,数字水印成为主旋律,全部33篇文章中有18篇是关于数字水印的研究。

我国近年来已有少数的研究所和大学开展了对水印技术的研究工作,如:中科院自动化研究所的模式识别国家重点实验室、天津大学图像信息中心等。

数字水印的研究引起了各种学科的研究人员的兴趣,但受关注的程度不及国外,研究的人员不多,研究的领域不广,从理论和实际成果两方面来看,国内在数字水印方面的研究工作还处于刚起步阶段。

我国已明确表示:所有的知识产权保护和安全认证问题不可能依靠国外的力量,必须由我们自主开发解决。

因此,无论从学术研究角度,还是从应用技术的角度,开展数字水印的研究都具有十分重要的意义。

1.2 程序开发思路因特网的出现以及计算机、扫描仪和打印机的广泛使用使得数字化多媒体数据的获取、交换和传输变得异常简单。

但是通过网络传播数据也使有恶意的个人或团体在没有得到数据文件所有者许可的情况下能肆意地复制和传播有版权保护的文档。

数字水印技术则为这种问题提供了一个潜在的解决方案。

数字水印(Digital Watermarking )是往多媒体数据(如图像、声音、视频信号等)中添加某些数字信息以达到版权保护等作用。

如果没有鲁棒性(Robustness )的要求,水印与信息伪装技术上的处理本质上是完全一致的。

在绝大多数情况下我们希望添加的信息是不可察觉的(Imperceptible ),并且希望攻击者在不破坏数据本身质量的情况下无法将水印去掉。

发展数字水印技术的原动力就是为了提供多媒体数据的版权保护。

1.3 数字水印的实现算法1) 空间域水印L.F.Turner与R.G.van Schyndel等人的空间域水印算法是最低有效位算法(LSB)与改进算法。

由于该算法是通过调整原始数据的最低几位来隐藏信息,使一般用户对于隐藏信息,在视觉上很难察觉。

虽然其有较大的信息嵌入量,但作为数字水印算法,因其基本原理限制,所隐藏的数字水印信息是极为脆弱的,无法经受一些有损的信号处理。

Bander等人提出的基于统计的数字水印方案(Patchwork)和纹理块映射编码方法则是空间域水印技术的典型设计。

Patchwork任意选择N对图像点,增加其一点的亮度的同时,相应降低另一点的亮度值。

通过这一调整过程完成水印的嵌入。

Pitas和Kaskalis利用“Patchwork”算法的基本原理,提出了数字图像签名的思想。

这种算法可以有效抵抗二次采样攻击与JPEG压缩。

2) 变换域算法基于变换域的技术可以嵌入大量比特数据而不会导致可察觉的缺陷,往往采用类似扩频图像的技术来隐藏数字水印信息。

这类技术一般基于常用的图像变换,基于局部或是全部的变换,这些变换包括离散余弦变换(DCT)、小波变换(WT)、傅氏变换(FT或FFT)以及哈达马变换(Hadamard transform)等等。

其中基于分块的DCT是最常用的变换之一,现在所采用的静止图像压缩标准JPEG也是基于分块DCT的。

最早的基于分块DCT的一种数字水印技术方案是由一个密钥随机地选择图像的一些分块,在频域的中频上稍稍改变一个三元组以隐藏二进制序列信息。

选择在中频分量编码是因为在高频编码易于被各种信号处理方法所破坏,而在低频编码则由于人的视觉对低频分量很敏感,对低频分量的改变易于被察觉。

该数字水印算法对有损压缩和低通滤波是稳健的。

另一种DCT数字水印算法是首先把图像分成8×8的不重叠像块,在经过分块DCT 变换后,即得到由DCT系数组成的频率块,然后随机选取一些频率块,将水印信号嵌入到由密钥控制选择的一些DCT系数中。

该算法是通过对选定的DCT系数进行微小变换以满足特定的关系,以此来表示一个比特的信息。

在水印信息提取时,则选取相同的DCT系数,并根据系数之间的关系抽取比特信息。

除了上述有代表性的变换域算法外,还有一些变换域数字水印方法,它们当中有相当一部分都是上述算法的改进及发展,这其中有代表性的算法是I.Podichuk和Zeng Wen-jun提出的算法。

他们的方法是基于静止图像的DCT变换或小波变换,研究视觉模型模块返回数字水印应加载在何处及每处可承受的JND(Just Noticeable Difference恰好可察觉差别)的量值(加载数字水印的强度上限),这种水印算法是自适应的。

3) 压缩域算法基于JPEG、MPEG标准的压缩域数字水印系统不仅节省了大量的完全解码和重新编码过程,而且在数字电视广播及VOD(Video Oil Demand)中有很大的实用价值。

相反地,水印检测与提取也可直接在压缩域数据中进行。

Hartung提出了一种针对MPEG-2压缩视频数据流的数字水印案。

在Hartung方案中,只有MPEG-2数据流最后一部分数据被改变,其原理是,首先对DCT编码数据块中每一输入的Huffman码进行解码和逆量化,以得到当前数据块的一个DCT系数;其次,把相应水印信号块的变换系数与之相加,从而得到水印叠加的DCT系数,再重新进行量化和Huffman编码,最后对新的Huffman码字的位数n,与原来的无水印系数的码字n0进行比较,只在n1不大于n0的时候,才能传输水印码字,否则传输原码字,这就保证了不增加视频数据流位率。

4) NEC算法该算法由NEC实验室的Cox等人提出,该算法在数字水印算法中占有重要地位,其实现方法是,首先以密钥为种子来产生伪随机序列,该序列具有高斯N(0,1)分布,密钥一般由作者的标识码和图像的哈希值组成,其次对图像做DCT变换,最后用伪随机高斯序列来调制(叠加)该图像除直流分量外的1000个最大的DCT系数。

该算法具有较强的鲁棒性、安全性、透明性等。

5) 生理模型算法人的生理模型包括人类视觉系统HVS和人类听觉系统HAS。

该模型不仅被多媒体数据压缩系统利用,同样可以供数字水印系统利用。

它们的基本思想均是利用从视觉模型导出的JND描述来确定在图像的各个部分所能容忍的数字水印信号的最大强度,从而能避免破坏视觉质量,也就是说,利用视觉模型来确定与图像相关的调制掩模,然后再利用其来插人水印。

这一方法同时具有好的透明性和鲁棒性。

2. 算法实现文中只给出部分关键代码。

2.1 水印图像的嵌入程序。

水印图像嵌入://转换公式为Gray(i,j)=0.11*R(i,j)+0.59*G(i,j)+0.3*B(i,j),//其中Gray(i,j)为转换后的黑白图像在(i,j)点处的灰度值,//其中绿色所占的比重最大,所以转换时可以直接使用G值。

void CWaterMarkDlg::OnWaterEmbed(){// TODO: Add your control notification handler code hereif ((bm[0].bmHeight*bm[0].bmWidth)<3*(bm[1].bmHeight*bm[1].bmWidth)) {//不能嵌入水印MessageBox("水印图象过大请更换较大宿主图象","错误",MB_OK);Mark=FALSE;}if(!Mark)return ;if(biBitCount<biBitCount1){MessageBox("水印受限制");return ;}RGBQUAD *m_copymater; //定义一个水印信息的数据副本m_copymater = new RGBQUAD [WaterHeight*WaterWidth];int i,j;int count=0;BYTE m_r,m_b;if(m_waterEmbed !=NULL) //m_waterEmbed是水印.嵌入后.的位图数据全局变量if(m_Ih!=0)for(int l =0;l<m_Ih;l++)delete [] m_waterEmbed[l];m_waterEmbed = new RGBQUAD*[ImageHeight];for(i=0;i<ImageHeight;i++)m_waterEmbed[i] = new RGBQUAD [ImageWidth];for(i=0;i<ImageHeight;i++) //将原来的图象的数据复制到m_waterEmbed里for(j=0;j<ImageWidth;j++)m_waterEmbed[i][j]=m_tOriPixelArray[i][j];for(i=0;i<WaterHeight;i++)//将水印信息的数据复制到一维数组m_copymater水印信息的数据副本里for(j=0;j<WaterWidth;j++){m_copymater[i*WaterHeight+j]=m_watermarkdata[i][j];count++;}number=count;//记录嵌入的点数int k=0;if (biBitCount==24) //Operate_Byte()嵌入水印信息位操作{for(i=0;i<IMAGEHEIGHT&&COUNT>0;i++)for(j=0;j<ImageWidth&&count>0;j++,count--)//下面可以用一条语句的但为了测试还是多句{m_r=m_waterEmbed[i][j].rgbRed;m_b=m_waterEmbed[i][j].rgbBlue;BYTE &a=m_r;BYTE &b=m_b;BYTE c=m_copymater[i*ImageHeight+j].rgbGreen;Operate_Byte(a,b,c);m_waterEmbed[i][j].rgbRed=m_r;m_waterEmbed[i][j].rgbBlue=m_b;}PutInWaterMessage();}elsereturn;CDC *dc=GetDC();//将象素打印出来RECT m_rect;float w,h,p,q;GetDlgItem(IDC_STATIC2)->GetClientRect(&m_rect);if(m_rect.right<ImageWidth&&m_rect.bottomw=(float)m_rect.right/(float)ImageWidth;h=(float)m_rect.bottom/(float)ImageHeight;}elsew=h=1;for( p=0,i=0;i<ImageHeight;i++,p++)for( j=0, q=0;j<ImageWidth;j++,q++)dc->SetPixel(2+(int)(q*w),235+(int)(p*h),RGB(m_waterEmbed[i][j].rgbRed, m_waterEmbed[i][j].rgbGreen,m_waterEmbed[i][j].rgbBlue));ReleaseDC(dc);delete [] m_copymater;m_Ih=ImageHeight; //为保证直接更换水印信息而没有更换宿主图象提供原宽高 void error bugm_Iw=ImageWidth;m_Wh=WaterHeight;m_Ww=WaterWidth;TRACE("\n%d\n",ImageHeight);GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);GetDlgItem(IDC_BUTTON5)->EnableWindow(TRUE);}3. 程序运行开发环境 Microsoft Visual C++ 6.0程序功能在程序中打开宿主图像24位(保存格式为:24位位图),水印图像8位(H*W最好为:131*170)(保存格式为256色位图)。

相关文档
最新文档