基于Matlab的数字水印设计——基于DCT域的水印实现
基于Matlab的数字水印设计基于DCT域的水印实现课程设计
要摘数字水印(Digital Watermark)技术是指用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.随着数字水印技术地发展,数字水印地应用领域也得到了扩展,数字. 水印地基本应用领域是版权保护、隐藏标识、认证和安全不可见通信当数字水印应用于版权保护时,潜在地应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模地广播服务.数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容地检索等领域得到应用.数字水印地认证方面主要ID卡、信用卡、ATM卡等上面数字水印地安全不可见通信将在国防和情报部门得到广泛地应用.本文主要是根据所学地数字图象处理知识,在MATLAB环境下,通过系统编程地方式,建立并实现基于DCT域地数字水印加密系统.该系统主要包含数字水印地嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效地技术保障.DCTTLAB;关键词:数字水印;MA录目1 课程设计目地 (1)2 课程设计要求 (2)3 数字水印技术基本原理 (3).......................................................................................................... 33.1 数字水印基本框架.......................................................................................................................... 3算法分类 3.2 ................................................................................................................. 43.2.1 DCT 法.............................................................................................................. 4其他方法 3.2.2 ...................................................................................................... 43.3 实际需要考虑地问题.............................................................................................................. 4不可见性 3.3.1 .................................................................................................................. 5 3.3.2 鲁棒性.............................................................................................................. 5 3.3.3 水印容量3.3.4 安全性 (5)4 基于DCT变换仿真............................................................................................................................................................................................................................ 6 4.1 算法原理.............................................................................................................. 6 4.1.1 准备工作.................................................................................................. 78*8变换块4.1.2 选取.......................................................................................................... 7边界自适应 4.1.3 ................................................................................................. 74.1.4 DCT变换与嵌入.............................................................................................................. 8 4.1.5 恢复空域.................................................................................................................. 8嵌入算法扩展4.2 ......................................................................... 8彩色图像三个矩阵地划分4.2.1 RGB...................................................................................................... 8 4.2.2 八色彩色水印...................................................................................................................... 9水印地提取 4.3 .......................................................................................................................... 9 仿真程序4.45 结果分析..................................................................................................................14结束语..........................................................................................................................16参考文献......................................................................................................................17课程设计目地1数字水印技术是用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.在数字水印技术中,水印地数据量和鲁棒性构成了一对基本矛盾.从主观上讲,理想地水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形.然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术地应用,因为实际应用一般只偏重其中地一个方面.如果是为了隐蔽通信,数据量显然是最重要地,由于通信方式极为隐蔽,遭遇敌方篡改攻击地可能性很小,因而对鲁棒性要求不高.但对保证数据安全来说,情况恰恰相反,各种保密地数据随时面临着被盗取和篡改地危险,所以鲁棒性是十分重要地,此时,隐藏数据量地要求居于次要地位.数字水印技术是通过一定地算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容地价值和使用,并且不能被人地知觉系统觉察或注意到.水印信息可以是作者地序列号、公司标志、有特殊意义地文本等,可用来识别文件、图像或音乐制品地来源、版本、原作者、拥有者、发行人、合法使用人对数字产品地拥有权.与加密技术不同,数字水印技术并不能阻止盗版活动地发生,但它可以判别对象是否受到保护,监视被保护数据地传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据.总地来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品地合法拷贝和传播.课程设计要求2利用所学地数字图像处理技术,建立并实现基于DCT地数字水印加密系统,利用MATLAB软件系统来实现水印地嵌入和提取,并对算法地不可见性、鲁棒性进行测试.具体要求:TLAB程序设计方法;(1)熟悉和掌握MA TLAB图像处理工具箱;2)学习和熟悉MA (工具箱对图像进行处理和分析;)学会运用MA TLAB(3格式进行打开、保存、另存、退出等功能操作;)能对图像jpg(4软件对图像进行水印地嵌入和提取;)利用所学数字图像处理技术知识、MATLAB(5(6)在程序开发时,清楚主要实现函数目地和作用,需要在程序书写时做适当注释说明,理解每一句函数地具体意义和使用范围;.)每个程序都必须做到功能仿真成功,运行结果以图片地形式粘贴到报告中(7数字水印技术基本原理3数字水印基本框架3.1一个数字水印系统一般包括三个基本方面:水印地生成、水印地嵌入和水印地提取或检测.数字水印地嵌入和提取地一般过程基本框架如图3.1,图3.2所示.水印生成算法(G)数字水原始载体数(J)水印嵌入算私公(K)图3.1 水印嵌入地一般过程基本框架数字水(W)原始数据水印检测算法估计水印(W)/相似度检测) (I待检测数据W私钥/公钥(K)图3.2 水印检测地一般过程基本框架算法分类3.2.根据水印实现方法不同,数字水印可分为空(时)域数字水印和频域数字水印空域数字水印是直接在信号空间上叠加水印信号,而频域法加入数字水印地原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用地变换一般有DWT、DCT、DFT、WP和分形.然后,对加入了水印信息地信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息地信号.频域法检测水印地原理是将原始信号与待检测信号同时进行变换域变换,比较两者地区别,进行嵌入水印地逆运算,得出水印信息.如果是可读地水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出地水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印地检测有两个结束点.频域法有以下优点:嵌入地水印信号能量可以分布到空域地所有像素上,有利于保证水印地不可见性;视觉系统(HVS)地某些特性(如频率地掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内地水印编码.法3.2.1 DCT.对原始信号做DCT地算法:Cox和Piva等人提出地DCT技术地经典之作.Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。
基于Matlab的数字水印设计基于空域的水印实现
基于M a t l a b的数字水印设计基于空域的水印实现Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】摘要(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
基于Matlab的数字水印设计基于空域的水印实现
摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
基于DCT域的数字水印算法
26 8
计 算机应 用与软 件
f rY= 1: o i
21 0 2皇
已有的方法 自然容 易得 多, F T是复 数运算 , 样运 算量 势 可 F 这
必剧增 , 而计 算 机 对 复 数运 算 需 要 较 大 的开 销 。
P=( 一1 m+1 x ) ;
2 )鉴于 D T变换 前后 的数据 均为 实数 , C C D T快速 变换直 接作用于实数域 , 而这种方 法使运算 量减少 。通 过 由根求底 从
( 浙江经济职业 技术学 院 浙江 杭州 3 0 1 ) 10 8
摘
要
提 出一种矢量地 图水 印嵌入不依赖原始地 图的盲提取算 法, 该算 法在离散余 弦 变换域上 转换而成 。离散余 弦变换 的特
性之一是对相互依赖 的数据能够产 生能量聚集效益 , 而矢量地 图 同一条边上点与点具有依赖关系 , 一条边上依 次选取 8个 顶点作 在 Nhomakorabea—
FO = ()
√ Ⅳ
^
’ ) ,
.
空域 向 D T域发展 , 中文献 [ ] C 其 2 为实现盲提取 , 由一个 多边 便
形 的相邻 8个顶点为一个 单元数 据 , 分利用其 顶点 坐标数 据 充 变化有联系 的特点做 D T变换 , C 在单元 数据 中定 义一个水 印位 并 内嵌 8个顶点 的 D T系数 中。文献 [ ] C 2 为达到盲提取对原始
dp nigo eo g a ma , ts ovr df m ted ce oie r s r ( C )dma .O e fh hrc r tso D Tial t eedn nt r i l p iicn e e o i r ecs a f h i n t r h s t n tn o m DT o i n n ecaat s c f C be o ot e i i s
基于DCT的数字水印算法的研究
基于DCT的数字水印算法的研究Research of Digital Watermarking Algorithm Based on Discrete CosineTransform摘要近年来,由于网络的迅猛发展,越来越多的多媒体信息已经走向数字化。
人们可以从网上更加方便的取得各类信息,可以更加方便的对别人的作品进行篡改,复制等,由此带来的版权维护问题也日益严重。
版权维护也越来越受到人们的关注了,数字水印技术是解决这类问题最有效的手段,所以数字水印技术现在已然成为了研究的热点。
本文是对基于DCT域数字水印算法的研究,简要介绍数字水印的发展,基本原理等,在MATLAB环境中完成两种基于DCT域数字水印算法的设计。
第一种是基于DCT图像全局变换的数字水印算法,而第二种则可以认为是第一种算法的改进,是基于DCT域分块水印算法。
然后对于水印系统的鲁棒性,进行一些攻击测试,有盐噪声攻击、高斯噪声攻击、旋转攻击、剪切攻击、JPEG有损压缩攻击等,对比分析哪种算法更好。
虽然说该课题只不过是对现有的数字水印技术进行了一个比较简单的研究,但是让我们充分认识到了数字水印技术对我们日常生活的重要性。
关键词:数字水印DCT 攻击测试AbstractIn recent years,with the rapid development of the network,more and more multimedia information has been digitized.People can obtain various kinds of information from the Internet more convenient, the work of others will be altered and copied more convenient, copyright protection issues are also increasingly serious. People are more and more concerned about copyright protection, digital watermarking technology is the most effective means to solve these problems, so the digital watermarking technology has become a hot topic now.This article is to study based on DCT-domain digital watermarking algorithm, introduced the development of digital watermarking and the basic principles etc,completed two design schemes based on DCT-domain digital watermarking algorithm in MATLAB environment. The first one is based on digital image watermarking algorithm global transformation of DCT, while the second one can be considered to improve the first algorithm, which is based on DCT-domain block watermarking algorithm. Then for the robustness of the watermarking system, we performed some attack test, salt noise attack, Gaussian noise attack and spin attack, cropping attack, JPEG compression attack, in order to prove which is better. Although the subject is a relatively simple research for the existing digital watermarking technique , but it let us aware of the importance of digital watermarking technology in our daily life.Key words:Digital watermarking DCT Robustness Attack test目录摘要 (I)Abstract ............................................................................................................................... I I 绪论 .. (1)1 数字水印的介绍 (3)1.1 数字水印定义及基本特点 (3)1.1.1 定义 (3)1.1.2 基本特点 (3)1.2 数字水印基本原理 (3)1.2.1 水印嵌入 (4)1.2.2 水印提取 (4)1.3 数字水印分类 (5)1.4 数字水印的常见算法 (6)1.4.1 空域算法 (6)1.4.2 变换域算法 (6)1.4.3 JPEG压缩域算法 (6)1.4.4 NEC算法 (7)1.4.5 生理模型算法 (7)2 开发工具和环境 (8)2.1 MATLAB简介 (8)2.2 MATLAB语言特点 (8)3 基于DCT域数字水印算法实现 ................................................... 错误!未定义书签。
毕业设计(论文)-基于dct域的数字水印算法研究与应用[管理资料]
毕业设计中文摘要毕业设计英文摘要目次1 绪论 (1)课题的研究现状及热点问题 (1)数字水印的关键技术及应用 (2)本文的主要研究内容 (5)2 数字水印的基本原理 (6)DCT域数字水印嵌入原理 (6)DCT域数字水印提取原理 (6)本章小结 (7)3 数字水印的嵌入设计 (7)DCT域数字水印嵌入流程 (7)水印嵌入的结果 (8)本章小结 (11)4 数字水印的提取设计 (12)DCT域数字水印提取流程 (12)水印提取的结果 (13)本章小结 (15)5 鲁棒性分析 (16)抗噪声测试 (16)抗压缩测试 (20)本章小结 (21)结论 (22)参考文献 (23)致谢 (25)附录A (25)附录B (27)1 绪论课题的研究现状及热点问题随着计算机的普及,许多传统媒体内容都向数字化转变,并且在电子商务中即将占据巨大市场份额,如mp3的网上销售,数字影院的大力推行,网上图片、电子书籍销售等等,在无线领域,随着移动网络由第二代到第三代的演变,移动用户将能方便快速的访问因特网上数字媒体内容,基于有线或无线网络的数字媒体内容的应用即将是信息时代新的传统。
但是,数字媒体内容的安全问题成了瓶颈问题,一度制约着信息化进程。
为了有效地解决信息安全和版权保护等问题,近年来提出了加解密、数字签名、数字指纹、数字水印等多种技术。
其中数字水印是20世纪90年代出现的一门崭新的技术,它通过在数字产品中嵌入水印信息来确定数字产品的所有权或检验数字内容的原始性[1]。
它弥补了加解密技术不能对解密后的数据提供进一步保护的不足, 弥补了数字签名不能在原始数据中一次性嵌入大量信息的弱点, 弥补了数字指纹仅能给出版权破坏者信息的局限[2]。
国际上一些成立了专门的机构,如拷贝保护技术工作组(CPTWG,Copy Protection Technique Working Group)从1995年开始致力于基于DVD的视频版权保护研究,安全数字音乐创始(SDMI,Secure Digital Music Initiative)从1999年开始研究音频的版权版护,数字水印是其中的核心关键技术。
基于DCT域的数字水印算法
在受到不同攻击的图像中,水印提取 准确率如下表所示
实验结果展示
01
02
03
| --- | --- | --- | --- |
| JPEG压缩 | 98% | 96% | 94% |
| 噪声添加 | 95% | 92% | 89% |
实验结果展示
| 滤波 | 92% | 88% | 85% |
数字水印提取算法
数字水印提取算法是用于从嵌入水印后的图像中提取出水印信息的过程。
提取算法通常采用与嵌入算法相反的过程,即从DCT系数中提取出水印信 息,并进行解码和验证。
提取算法需要保证能够准确提取出水印信息,同时抵抗各种攻击和噪声的 影响。
03
基于DCT域的数字水印算法实 现
水印信息预处理
01
基于DCT域的数字水印算法
汇报人: 2024-01-01
目录
• 引言 • DCT域数字水印算法原理 • 基于DCT域的数字水印算法实
现 • 实验结果与分析 • 算法优化与改进 • 总结与展望
01
引言
研究背景与意义
数字水印技术的必要性
随着数字媒体的普及,版权保护问题 日益突出。数字水印技术作为一种有 效的版权保护手段,具有重要意义。
DCT域的特点
离散余弦变换(DCT)在图像处理中 广泛应用,特别是在图像压缩标准 JPEG中。基于DCT域的数字水印算法 具有较好的鲁棒性和隐蔽性。
数字水印技术概述
数字水印的基本概念
数字水印是一种将特定信息嵌入数字媒体中的技术,这些 信息通常是不可见的,但可通过特定算法提取。
数字水印的应用领域
数字水印技术在版权保护、内容认证、广播监视等方面有 广泛应用。
一种基于Arnold-DCT变换的数字水印的MATLAB实现
一种基于Arnold-DCT变换的数字水印的MATLAB实现作者:马婷熊顺清左海平来源:《科教导刊》2010年第18期摘要现在基于数字信息被便捷的复制和修改,对数字信息的保护便变得极为重要,因此数字水印技术成为了研究热点之一。
本文是采用经典的Lena图像作为测试图像,将二值图像作为水印,对水印图像先进行Arnold变换,然后将置乱后的水印嵌入到原图像中。
可知基于DCT域的数字水印技术对信号处理攻击具有较好的鲁棒性。
本文是将Arnold与DCT结合起来设计数字水印方案,并在MATLAB7.0平台上进行了仿真实验。
关键词数字水印离散余弦变换 Arnold变换中图分类号:TP39文献标识码:A0 引言现在网络的迅猛发展,使得信息的交流与传播变得极为容易与简单,数字信息被便捷的复制和修改,基于这种现状对数字信息的保护便变得其为重要,因此数字水印技术成为了研究热点之一。
1 数字水印技术简介所谓数字水印技术就是将数字、序列号、文字、图像标志等版权信息嵌入到多媒体数据中,以起到保护版权、秘密通信、数据文件的真伪鉴别和产品标志等作用。
不同的应用领域对数字水印有不同的要求,但一般来讲,数字水印应具备如下特点:(1)安全性:即数字水印中的信息应该是安全的,难以被篡改或伪造,使未授权的用户无法提取或检测水印。
(2)不可感知性:一般来说,数字水印的不可感知性就是指原始产品与嵌入水印后的产品之间的感官相似度。
通俗地讲,就是嵌入水印后的图像与未嵌入水印之前的图像在视觉上是没有任何差别的,即要求嵌入水印之后的图像仍能满足人们感官上的需求,且嵌入的水印不能影响原始产品的质量,否则将会降低产品的观赏价值和商业价值等。
(3)鲁棒性:嵌入水印后的图像在传播过程中要受到各种有意无意的攻击,那么水印系统的鲁棒性就是指在经过信号处理操作和几何处理操作后仍然能够检测出水印的能力。
一般情况下,信号处理操作包括重采样、重量化、滤波、平滑和有损压缩等;几何处理操作包括平移、旋转、缩放和剪切等。
基于MATLAB数字水印系统设计
• 4.按内容划分
• 按数字水印的内容可以将水印划分为有意义水印 和无意义水印。有意义水印是指水印本身也是某 个数字图像(如商标图像)或数字音频片段的编 码;无意义水印则只对应于一个序列号。有意义 水印的优势在于,如果由于受到攻击或其他原因 致使解码后的水印破损,人们仍然可以通过视觉 观察确认是否有水印。但对于无意义水印来说, 如果解码后的水印序列有若干码元错误,则只能 通过统计决策来确定信号中是否含有水印。
• 2)通用性:比较好水印算法大多都实用于多类媒 体格式与文件格式。通用性在特定程度上也代表 易用性。
• 3)计算效率高:在软件和硬件方面,水印算法也 应该能被有效的实现。需要特别注意的是,在分 布式网络上的多媒体数据监视方面,水印检测算 法的能够快速完成。
2.2数字水印技术的分类
• 数字水印的分类方法有很多种,不同的出发点导 致了不同的分类,他们之间既有联系又有区别, 本文主要介绍按水印的嵌入域划分。
•
II=II+1;
•
end
•
end
•
end
• end
•
%分块DCT反变换
• watermarked_image(y:y+blocksize-
1,x:x+blocksize-1)=idct2(dct_block);
1)*8:j*8),(1+(i-1)*8):i*8)));
•
fc(xx)=1/64*sum(sum((cover_object((1+(j-
1)*8:j*8),(1+(i-1)*8):i*8)-pjhd(xx)).^2));
•
xx=xx+1;
• end
• end
DCT域水印算法原理
DCT域水印算法原理DCT(Discrete Cosine Transform)是一种将信号从时域转换到频域的数学变换方法。
DCT 域水印算法利用了这个变换方法的性质,将水印嵌入到图像的DCT系数中,以实现对图像进行水印隐藏和提取的目的。
DCT是一种将图像或信号编码为频谱的变换方法,它将时域上的图像或信号转换为频域上的一组系数。
在DCT域中,图像的低频分量集中在左上角,高频分量在右下角。
因此在DCT域中,图像变得更易处理和压缩。
在嵌入过程中,首先将图像划分为若干个重叠的图像块,并对每个图像块进行DCT变换。
然后选择一些低频系数进行水印嵌入,在DCT系数中加入水印信息。
为了保证嵌入的水印不被轻易检测和移除,通常会采用一些随机化和加密的方法来加强水印的鲁棒性和安全性。
在提取过程中,同样将图像划分为重叠的图像块,并对每个图像块进行DCT变换。
然后根据嵌入时选择的低频系数,提取出水印信息。
为了增加提取的准确性和鲁棒性,通常还会采用一些模板匹配或相关性计算方法来对提取结果进行处理和判断。
1.鲁棒性:由于图像的DCT系数主要集中在低频分量上,而水印嵌入也主要集中在低频系数上,因此对图像进行一些常见的几何和信号处理操作(如缩放、旋转、加噪声等)时,水印嵌入的鲁棒性比较好。
2.安全性:由于DCT域水印算法采用了随机化和加密的方法进行水印嵌入,因此水印信息在嵌入后难以被轻易检测和移除,提高了水印的安全性。
3.容量:DCT域水印算法具有较高的水印容量,可以嵌入较大的水印信息。
然而,DCT域水印算法也存在一些问题:1.适应性差:DCT域水印算法对于一些复杂的图像场景,如纹理过于复杂或有大量细节的图像,可能会导致水印嵌入效果不理想。
2.频谱泄露:由于DCT域水印算法是一种离散的变换方法,嵌入水印后,DCT系数之间可能存在一定的相关性,导致水印信息泄露的风险。
3.嵌入容量限制:尽管DCT域水印算法具有较高的嵌入容量,但由于需要保持图像的视觉质量,嵌入容量仍然有一定的限制。
基于Matlab的数字图像水印算法设计设计
基于Matlab的数字图像水印算法设计设计1、绪论本章主要介绍信息隐藏技术的背景和研究意义、国内外信息隐藏技术研究现状,并给出全文的结构安排。
1.1信息隐藏技术的背景和研究意义从二十世纪九十年代开始,网络信息技术在全世界范围内取得了迅猛发展,它极大方便了人们之间的通信和交流。
借助计算机网络所提供的强大的多媒体通信功能,人们可以方便、快速地将数字信息(数字音乐、图像、影视等方面作品)传到世界各地,一份电子邮件可以瞬息间传遍全球[1-7]。
但在同时计算机网络也成为犯罪集团、非法组织和有恶意的个人利用的工具。
从恶意传播计算机病毒,到非法入侵重要部门信息系统,窃取重要机密甚至可使系统瘫痪;从用计算机进行金融犯罪,到利用表面无害的多媒体资料传递隐蔽的有害信息,对计算机信息系统进行恶意攻击的手段可谓是层出不穷。
信息隐藏技术在保密通信、版权保护等领域中都具有相当广泛的应用价值,根据不同应用背景,信息隐藏技术可以分为两个重要分支隐写术(Stegano Graphy)和数字水印[8](Digital Watermarking)。
数字水印主要是为了保护知识产权的,通过在原始媒体数据中嵌入信息来证实该媒体的所有权归属问题。
数字水印的主要目的不是限制对媒体访问,而是确保媒体中水印不被篡改或消除。
因此稳健性是数字水印最基本要求之一。
数字水印中的稳健性是指水印图像经过一些常见改变后,水印仍具有较好可检测性。
这些改变包括常见的图像处理手段(如数据压缩、低通滤波、图像增强、一次抽样、二次量化、A/D和D/A转换等等)、几何变换和几何失真、噪声干扰、多重水印(Multiple Watermarking)的重叠等。
对不同应用场合,要求具有不同的稳健性。
但需要指出的是,存在另一种与稳健水印性质相反的水印,被称为易损水印(Fragile Watermarks),它们被用来证实原始媒体是否被改动过。
稳健性在整个水印系统设计中具有很重要的分量,这也是将隐写术和数字水印分别对待的原因之一。
基于Matlab的数字水印设计——基于DCT域的水印实现课程设计
摘要数字水印(Digital Watermark)技术是指用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.随着数字水印技术地发展,数字水印地应用领域也得到了扩展,数字水印地基本应用领域是版权保护、隐藏标识、认证和安全不可见通信.当数字水印应用于版权保护时,潜在地应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模地广播服务.数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容地检索等领域得到应用.数字水印地认证方面主要ID卡、信用卡、A TM卡等上面数字水印地安全不可见通信将在国防和情报部门得到广泛地应用.本文主要是根据所学地数字图象处理知识,在MA TLAB环境下,通过系统编程地方式,建立并实现基于DCT域地数字水印加密系统.该系统主要包含数字水印地嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效地技术保障.关键词:数字水印;MA TLAB;DCT目录1 课程设计目地 (1)2 课程设计要求 (2)3 数字水印技术基本原理 (3)3.1 数字水印基本框架 (3)3.2 算法分类 (3)3.2.1 DCT法 (4)3.2.2 其他方法 (4)3.3 实际需要考虑地问题 (4)3.3.1 不可见性 (4)3.3.2 鲁棒性 (5)3.3.3 水印容量 (5)3.3.4 安全性 (5)4 基于DCT变换仿真 (6)4.1 算法原理 (6)4.1.1 准备工作 (6)4.1.2 选取8*8变换块 (7)4.1.3 边界自适应 (7)4.1.4 DCT变换与嵌入 (7)4.1.5 恢复空域 (8)4.2 嵌入算法扩展 (8)4.2.1 RGB彩色图像三个矩阵地划分 (8)4.2.2 八色彩色水印 (8)4.3 水印地提取 (9)4.4 仿真程序 (9)5 结果分析 (14)结束语 (16)参考文献 (17)1 课程设计目地数字水印技术是用信号处理地方法在数字化地多媒体数据中嵌入隐蔽地标记,这种标记通常是不可见地,只有通过专用地检测器或阅读器才能提取.数字水印是信息隐藏技术地一个重要研究方向.在数字水印技术中,水印地数据量和鲁棒性构成了一对基本矛盾.从主观上讲,理想地水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形.然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术地应用,因为实际应用一般只偏重其中地一个方面.如果是为了隐蔽通信,数据量显然是最重要地,由于通信方式极为隐蔽,遭遇敌方篡改攻击地可能性很小,因而对鲁棒性要求不高.但对保证数据安全来说,情况恰恰相反,各种保密地数据随时面临着被盗取和篡改地危险,所以鲁棒性是十分重要地,此时,隐藏数据量地要求居于次要地位.数字水印技术是通过一定地算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容地价值和使用,并且不能被人地知觉系统觉察或注意到.水印信息可以是作者地序列号、公司标志、有特殊意义地文本等,可用来识别文件、图像或音乐制品地来源、版本、原作者、拥有者、发行人、合法使用人对数字产品地拥有权.与加密技术不同,数字水印技术并不能阻止盗版活动地发生,但它可以判别对象是否受到保护,监视被保护数据地传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据.总地来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品地合法拷贝和传播.2 课程设计要求利用所学地数字图像处理技术,建立并实现基于DCT地数字水印加密系统,利用MATLAB软件系统来实现水印地嵌入和提取,并对算法地不可见性、鲁棒性进行测试.具体要求:(1)熟悉和掌握MA TLAB程序设计方法;(2)学习和熟悉MA TLAB图像处理工具箱;(3)学会运用MA TLAB工具箱对图像进行处理和分析;(4)能对图像jpg格式进行打开、保存、另存、退出等功能操作;(5)利用所学数字图像处理技术知识、MATLAB软件对图像进行水印地嵌入和提取;(6)在程序开发时,清楚主要实现函数目地和作用,需要在程序书写时做适当注释说明,理解每一句函数地具体意义和使用范围;(7)每个程序都必须做到功能仿真成功,运行结果以图片地形式粘贴到报告中.3 数字水印技术基本原理3.1 数字水印基本框架一个数字水印系统一般包括三个基本方面:水印地生成、水印地嵌入和水印地提取或检测.数字水印地嵌入和提取地一般过程基本框架如图3.1,图3.2所示.图3.1 水印嵌入地一般过程基本框架图3.2 水印检测地一般过程基本框架3.2 算法分类根据水印实现方法不同,数字水印可分为空(时)域数字水印和频域数字水印.空域数字水印是直接在信号空间上叠加水印信号,而频域法加入数字水印地原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用地变换一般有DWT、DCT、DFT、WP和分形.然后,对加入了水印信息地信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息地信号.频域法检测水印地原理是将原始信号与待检测信号同时进行变换域变换,比较两者地区别,进行嵌入水印地逆运算,得出水印信息.如果是可读地水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出地水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印地检测有两个结束点.频域法有以下优点:嵌入地水印信号能量可以分布到空域地所有像素上,有利于保证水印地不可见性;视觉系统(HVS)地某些特性(如频率地掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内地水印编码.3.2.1 DCT法对原始信号做DCT地算法:Cox和Piva等人提出地DCT技术地经典之作.Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息。
一种基于DCT域图像数字水印算法设计实现论文
毕业设计(论文)设计论文题目:基于DCT域图像数字水印算法的设计与实现学生姓名:学生学号:专业班级:学院名称:指导老师:学院院长:年5 月27一种基于DCT域图像数字水印算法的设计与实现摘要数字作品引发的盗版问题和版权纷争已成为日益严重的社会问题的今天,数字水印是实现数字产品版权保护和安全维护的有效办法,其在所有权水印标记搜索、拷贝控制、指纹识别等多方面都得以应用。
针对图像的水印方案是最近几年研究的主流方向,本文重点研究了基于DCT域的图像数字水印的设计和实现方法。
第一章介绍了数字水印目前的研究现状,并简单描述了将实现的图像数字水印系统的构思和预期目标;第二章介绍了本文所涉及的主要相关知识和技术;第三章讨论选择MATLAB作为实现系统的工具的目的和优势以及系统环境配置;第四章为本论文的主要部分,是系统实现的具体过程,包括主要步骤水印嵌入、水印提取、水印检测。
从实验结果看,系统能保证水印的不可见性,并保持较好的鲁棒性,即使在攻击下仍有不错的视觉效果,相关系数也符合数字水印质量指标的要求。
关键词:图像水印,离散余弦变换,人眼视觉系统Design and Implement of Digital Image Watermark Based on DCTAbstractNowadays, disputes of digital entries caused by piracy and copyright have become an increasingly serious social problem, so digital watermarking has been the effective measures to protect digital copyright and maintain security, and it has been applied into ownership Watermark Search, Copy control, fingerprint identification and other aspects.Image Watermarking against the program in recent years is the main research direction. This paper focuses on a DCT-based image digital watermark design and implementation. Chapter I provides a digital watermark current status of research and simple description of the idea and expected target of achieve image digital watermarking system; The second chapter describes the knowledge and technology the paper mainly related; The third chapter discusses optioning MATLAB as a tool to achieve the purpose and advantages and the environment of the system configuration; Chapter IV of the main thesis of this part is the specific process of the system implementation, including major steps, watermark embedding, watermark extraction, watermark detection. From the experimental results, the system can ensure that the watermark is not visible, and maintain better robustness, Even in the attack are still good visual effects, and the correlation coefficient is also in line with digital watermarking quality objectives.Key Words: Digital Watermark , Discrete Cosine Transformation(DCT), Human Visual System (HVS)目录1 绪论 (1)1.1 国内外研究状况 (1)1.2 系统目标分析 (3)1.3 系统设计构想 (4)2 系统关键技术介绍 (4)2.1 数字水印 (4)2.1.1 数字水印的基本框架 (5)2.1.2 数字水印的特点 (6)2.1.3 数字水印的分类 (7)2.2 离散余弦变换 (8)2.3 人眼视觉感知系统 (10)3 系统环境配置及工具选择 (12)3.1 开发工具的介绍与选择 (12)3.1.1 MATLAB (12)3.1.2 C/C++ (13)3.1.3 关于图像水印 (14)3.2 工作环境的配置 (14)4 系统实现 (15)4.1 水印嵌入 (15)4.1.1 水印嵌入思路分析 (15)4.1.2 水印嵌入步骤 (15)4.2 水印提取 (17)4.2.1 水印提取思路分析 (17)4.2.2 水印提取步骤 (17)4.3 水印测试 (18)4.3.1 白噪声攻击测试 (19)4.3.2 JPEG压缩攻击测试 (20)4.3.3 高斯低通滤波攻击测试 (20)4.4 本章小结 (21)5 总结 (21)致谢 (22)参考文献 (23)1 绪论近年来,随着宽带网的发展,数字化信息开始在网上流行。
基于MATLAB的DCT域数字水印技术实现
基于MATLAB的DCT域数字水印技术实现高景山;任神河【摘要】With the rapid development of network and multimedia technology,how to protect the multimedia information's security has become a hot topic in the international study,digital watermarking technology arises at this historic moment.Today digital watermarking technology has become a hot in the academic circle as the digital works copyright protection is more and more important.In this article,the current mainstream digital watermarking algorithm is briefly described,the DCT domain digital blind watermarking algorithm is proposed.The experimental results demonstrate that the watermarking algorithm satisfys invisibility and has good robustness for the JPEG Ccompression and noise.%随着网络技术和多媒体技术的飞速发展,如何保护多媒体信息的安全已成为国际上研究的热门话题,数字水印技术应运而生。
作为保护数字作品版权的一种重要手段,数字水印技术己成为当今学术界研究的一个热点。
基于Matlab图像数字水印算法的设计
基于Matlab图像数字水印算法的设计肖玉兰【摘要】Digital watermarking provide an effective way for overcoming serious problems of digital images on the Internet, including copyright violation, illegal copying and genuine identification, etc. The authors develop a bi-image watermarking method. This paper introduces the commonly used Matlab function in the digital watermarking algorithm and accomplished a new kind of watermark-embedding and detecting algorithm based on the DCT. It has good robustness with the experimental results given that the image embedded watermark after the attack can be extracted successfully.%介绍了Matlab中用于图像数字水印的基本函数,通过设计程序实现了一个DCT城图像数字水印的嵌入和提取算法,并对已嵌入水印的图像实施了攻击(压缩30%).结果表明,被攻击后的图像仍能成功提取出嵌入的水印信息,具有较好的稳健性和鲁棒性.【期刊名称】《广西民族大学学报(自然科学版)》【年(卷),期】2012(018)003【总页数】4页(P66-69)【关键词】Matlab;数字水印;数字图像;DCT【作者】肖玉兰【作者单位】青海师范大学组织部,青海西宁810008【正文语种】中文【中图分类】TP309.70 引言网络技术和流媒体技术的迅速发展,给文本、图像、音视频信息的数字存取提供了快速、高效和方便的网络途径.但随之而来的弊端是一些从事网络剽窃的个人(或团体)在没有得到原创作品版权所有者的许可下利用各种非法手段获取并修改网络中传输的数据信息,非法拷贝有版权的内容.如何在网络环境中实施有效的版权保护和信息安全,已成为一个亟待解决的现实问题.诸多研究表明[1-6],利用现代数字信号处理技术有效实施数字作品的版权保护是业界公认的手段,其中数字水印技术是最典型方法[7-8],它是利用数字作品中存在的冗余数据把有效的版权保护信息通过一定的方法嵌入到数字化作品中用来保护数字化产品版权的相关技术.根据水印嵌入到数字作品中的区别,数字水印技术相关的算法分为时空域和变换域两大类型.其中时空域算法是将水印信息直接嵌入到数字作品的时间或空间域中;而变换域算法首先将数字作品做相应的数学变换[9-10]处理,通过改变这些变换域的相关系数来达到嵌入水印信息的目的.这两种算法都能成功实现数字水印信息的嵌入和提取,实现有效版权信息的保护,只是算法设计思路、针对性和运行效果不同.Matlab软件含有丰富的库函数,功能强,编程简单.笔者通过介绍Matlab中用于数字图像处理的基本函数,设计程序实现了一个DCT域图像数字水印的嵌入和提取算法,并对已嵌入水印的图像实施了有效的攻击(压缩30%).仿真结果表明,被攻击后的图像仍能成功提取出被嵌入的水印信息,具有较好的稳健性和鲁棒性.1 Matlab中的图像处理函数Matlab是由 MathWorks 公司开发的主要用于矩阵运算和可视化图形图像处理的计算语言,含有专门用于数字图像处理的基本变换函数[4](FFT、DCT、DWT等),极大地简化了算法的计算机实现.1.1 图像文件I/O函数1) imread和imwrite:用于读写图像文件,图像文件类型可以是.bmp、.hdf、.jpeg和.tiff等格式;2) load:把以.mat 为扩展名的图像文件调入到内存中,以备后续处理;3) save:将工作空间中的变量保存到以.mat 为扩展名的图像文件中.1.2 图像显示函数1) image:显示图像,可返回一个图像的句柄给一个image 对象;2) imshow:用于显示一幅图像;3) truesize:调整图像显示的大小.1.3 离散余弦变换函数(DCT域图像变换)1) dct和dct2:可分别实现一维和二维信号的离散余弦变换;2) idct和idct2:分别实现一维和二维信号的离散余弦反变换;3) blkproc:对图像进行不同的块处理.1.4 水印性能攻击相关的函数1) imcrop:把图像剪裁成具有一定大小的矩形;2) imresize:利用插值方法来调节图像的大小; 3) imrotate:将图像沿逆时针方向旋转指定的角度;4) corr2:计算图像之间的相关系数;5) imadjust:调整图像的对比度; 6) imnoise:给图像加噪处理;7) filter和 filter2:可实现对一维和二维信号的滤波处理.2 图像数字水印算法的实现这里我们以lena1像作为原始图像,将一个图像水印(版权信息)利用变换域算法嵌入到原始图像中,然后再利用水印提取(检测)算法来提取(检测)被嵌入的水印信息;其次,对已嵌入水印信息的图像进行攻击(压缩、剪贴、旋转等)[11],这里以图像压缩作为攻击,压缩比例可不断变化,文中只给出压缩比为30%的图像;最后对被攻击后的图像中的水印信息再次进行提取(检测),以验证水印的稳健性和鲁棒性等.该算法及实现在Matlab 7.0环境下完成.2.1 图像水印的嵌入和提取算法如图1和图2所示为图像水印嵌入和提取过程,其中原始图像为256×256×8的lena图像,水印信息为图像水印.图1 水印的嵌入过程Fig.1 Framework for watermark embedding图2 水印的提取(检测)过程Fig.2 Framework for watermark detection2.2 算法软件编程算法的软件程序主要包括:初始化、原始图像读取和显示、图像水印的嵌入、图像水印的提取(检测)和攻击等,由于篇幅有限,这里只给出水印的嵌入、提取(检测)和攻击部分程序:M=256; %原始图像的尺寸N=32; %水印图像的尺寸H=8;I=zeros(M,M); %原始图像J=zeros(N,N); %水印图像BLOCK=zeros(H,H);J=imread('bit1','bmp'); %显示水印图像imshow(J);I=imread('cameraman','bmp'); %显示原始图像imshow(I);tem=1; %嵌入水印信息for c=1:N;for d=1:N;x=(c-1)*H+1;y=(d-1)*H+1;BLOCK=I(x:x+H-1,y:y+H-1);……BLOCK(2,1)=BLOCK(2,1)*(1+a*0.01); %嵌入系数BLOCK=iDCT2(BLOCK); % DCT反变换, 得到含水印的图像I(x:x+H-1,y:y+H-1)=BLOCK; %自适应地嵌入到了图像中endendimshow(I); %显示嵌入水印后的图像imwrite(I,'embeded.bmp','bmp');M=256; %原图像长度N=32; %水印图像长度K=8;I=zeros(M,M); %原始图像Q=zeros(M,M); %嵌入水印后的图像J=zeros(N,N); %水印图像BLOCK1=zeros(H,H);BLOCK2=zeros(H,H);Q=imread('embeded','bmp'); %读取嵌入水印后的图像for c=1:N;for d=1:M;x=(c-1)*H+1;y=(d-1)*H+1;……if a<0W(c,d)=0;elseW(c,d)=1;……endimshow(W);2.3 图像的攻击检测将嵌入水印的图像进行攻击(这里将图像压缩30%),相应的部分程序如下:L=imread('embeded','bmp');imwrite(L,'attack1.jpg','jpeg','Quality',70);J1=imread('attack1.jpg','jpeg');imshow(J1);%I=imread('cameraman','bmp');for c=1:Nfor d=1:Nx=(c-1)*H+1;y=(d-1)*H+1;……imshow(W);title ('从遭受攻击后图像中提取水印') %图3~8分别为原始图像、水印图像、嵌入水印后的图像、提取的水印图像、受攻击后的图像、受攻击后图像中提取的水印图像.从图3~6可看出,被嵌入到原始图像中的图像水印信息能很好的提取(检测)出来,这说明图像水印的嵌入、提取算法和过程是可行的.从图7可清楚看到,原始图像被攻击(压缩30%)后,仍然能显示完整的图像信息,但图像容量减小了30%,这有利于图像存储和网络传输,既节省了存储空间又提高了传输速度.从图8同样可清楚看到,嵌入水印的图像被攻击(压缩30%)后依然能提取(检测)出水印信息,只是被提取的水印图像中有一些离散的数据点,整个水印图像清晰可见,与原始水印图像差别不大,这说明水印有较好的抗攻击能力,图像质量和效果良好,具有较好的稳健性和鲁棒性.图3 原始图像Fig.3 Original image图4 水印图像Fig.4 Watermark image图5 嵌入水印后图像Fig.5 image after embeded Watermarking图6 提取的水印图像Fig.6 Watermark image detected图7 被攻击的图像(压缩30%)Fig.7 Attacked image(compression ratio of 30%) 图8 攻击后提取的水印图像Fig.8 watermark detection after attacking3 结论通过设计程序实现了一个DCT域图象数字水印的嵌入和提取算法,并对已嵌入水印的图像实施了有效的攻击(压缩30%).仿真实验结果表明,被攻击后的图像中能成功提取出被嵌入的水印信息,既节省了存储空间又提高了传输速度,有利于图像存储和网络传输,具有较好的稳健性和鲁棒性.[参考文献]【相关文献】[1]黄继武. DCT域图像水印: 嵌入对策和算法[J].电子学报, 2000, 28(4):57-59.[2]余燕忠, 王新伟. 应用 MATLAB实现数字水印算法[J].电子科技, 2004,(6): 27-32.[3]Hu C, Wu J. DCT based Watermarking for Video[J]. IEEET rans.Consumer Electronics,1998, 44(1):206-216.[4]张芳. MATLAB与数字水印技术[J].天津工业大学学报, 2004, 2(1):83-84.[5]鞠武,万鲁冲.基于二维混合变换(DCT-DWT)的图像水印算法[J].微计算机信息,2010,26(2):202-205.[6]张秋余,李凯,袁占亭.基于混沌和SVD_DWT的稳健数字图像水印算法[J].计算机应用研究,2010,27(2):718-721.[7]周亚训,叶庆卫,徐铁峰. 基于小波和余弦变换组合的图像水印方案[J].电子学报, 2001,29(12):1693-1695.[8]黄松, 杨华千, 张伟,等. 一个新的基于DCT的自适应数字水印算法[J].计算机科学, 2006,33(6):148-151.[9]闫德勤,韩亚丹,高艳. 一种DCT中频水印嵌入与提取方法[J].计算机工程与应用, 2005, 5:65-67.[10]吕锋,杨彬.一种基于视觉模型的DCT数字水印算法[J].武汉理工大学学报, 2006, 28(12):125-128.[11]邓成,李洁,高新波.基于仿射协变区域的抗几何攻击图像水印算法[J].自动化学报,2010,36(2):221-224.。
基于DCT域的水印嵌入和提取
14电信温美松1428403048 9、基于DCT域的水印算法此程序对原始图像以及水印图像有一定要求:1)原始图像不能有大片灰度均匀的地方,否则大量子块方差相等,嵌入时标记、提取时比对,都会错乱;2)原始图像长、宽是8的整数倍最好;3)水印图像总像素点必须少于原始图像8*8子块数,最好是通过MATLAB查看原始图像方最大且不等的前n块,限制水印图像总像素点小于等于n。
MATLAB函数——嵌入:clcclear allk = 20;block_size = 8;DCT_coef = [0,0,0,1,1,1,1,0;0,0,1,1,1,1,0,0;0,1,1,1,1,0,0,0;1,1,1,1,0,0,0,0;1,1,1,0,0,0,0,0;1,1,0,0,0,0,0,0;1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0];orig_image = double(imread('woman2.jpg'));%原始图像orig_image_show = orig_image;%用于显示原图[Hc,Wc] = size(orig_image);c = Hc/8;d = Wc/8;m = c*d;% 将原图分为m个8*8块watermark = double(imread('wenmeisong.jpg'));%水印图像,白色为目标watermark_show = watermark;%用于显示水印[Hm,Wm] = size(watermark);%水印尺寸n = Hm*Wm;%水印图像总像素点n%reshape将水印按列重组为一维向量%round将序列四舍五入,通过除以256将watermark转为0(背景)、1(目标)二值watermark = round(watermark./256);watermark = reshape(watermark,1,Hm*Wm);xx = 1;mean = zeros(1,c*d);%预先分配内存variance = mean;%预先分配内存%求方差for j = 1:cfor i = 1:dmean(xx)=1/64*sum(sum(orig_image(((1+(j-1)*8):j*8),((1+(i-1)*8):i*8)))); variance(xx)=1/64*sum(sum((orig_image(1+(j-1)*8:j*8,1+(i-1)*8:i*8)-mean(xx)).^2));xx = xx+1;endend%将方差升序排列存于A,长度为c*d,即子块数mA = sort(variance); % 16506A = fliplr(A);%最终降序排列%取出方差最大的前n块,长度为n,即水印像素数B = A(1:n);%标记水印信息到方差最大的前n块variance_o = zeros(1,c*d);for g = 1:nfor h = 1:c*dif B(g) == variance(h)variance_o(h) = watermark(g);h = c*d;endendendwatermark_vector = variance_o;watermarked_image = orig_image;%准备嵌入的图像%设置MATLAB随机数生成器状态J,作为系统秘钥K%MATLAB只要知道初始状态,就确定唯一的伪随机序列rand('state',7);%根据当前的随机数生成器状态,生成0、1的伪随机序列,长度为22pn_sequence_zero = round(rand(1,sum(sum(DCT_coef))));%嵌入水印x=1;y=1;for kk=1:m %一共m个子块%分块DCT变换dct_block = dct2(orig_image(y:(y+block_size-1),x:(x+block_size-1)));%纹理大并且被标示的水印信息为1(目标)的块在DCT中频系数嵌入伪随机序列zz=1;if watermark_vector(kk)==1;for ii=1:block_sizefor jj=1:block_sizeif (DCT_coef(jj,ii)==1)dct_block(jj,ii)=dct_block(jj,ii)+pn_sequence_zero(zz)*k;zz=zz+1;endendendend%分块DCT逆变换watermarked_image(y:(y+block_size-1),x:(x+block_size-1))=idct2(dct_block);if (x+block_size)>Wcx=1;if(y+block_size)>Hcy=1elsey=y+block_size;endelsex=x+block_size;endendwatermarked_image_int=uint8(watermarked_image);%生成并输出嵌入水印后的图像imwrite(watermarked_image_int,'dct2_A.jpg','jpg'); %显示嵌入水印后的图像figure(1);subplot(131)imshow(orig_image_show,[])xlabel('原图像');subplot(132)imshow(watermark_show,[]);xlabel('水印图像')subplot(133)imshow(watermarked_image_int,[]);xlabel('嵌入水印后的图像')实验结果:MATLAB程序——提取水印:clcclear allblock_size = 8;%zig_zag扫描位置DCT_coef=[0,0,0,1,1,1,1,0;0,0,1,1,1,1,0,0;0,1,1,1,1,0,0,0;1,1,1,1,0,0,0,0;1,1,1,0,0,0,0,0;1,1,0,0,0,0,0,0;1,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0];orig_image = double(imread('woman2.jpg'));%读入原始载体图像watermarked_image = double(imread('dct2_A.jpg'));%待检测图像[Hw,Ww]=size(watermarked_image);%待检测图像尺寸c = Hw/8;d = Ww/8;m = c*d;orig_watermark = double(imread('shuiyinsong3.jpg'));%读入原水印[Ho,Wo] = size(orig_watermark);n = Ho*Wo;%设置相同的随机数生成器状态J,作为检测时的系统秘钥%生成相同伪随机序列,长度同为22rand('state',7);pn_sequence_zero = round(rand(1,sum(sum(DCT_coef))));%提取水印x=1;y=1;for kk = 1:m %m个子块%对待检测图像进行分块DCT变换dct_block1 = dct2(watermarked_image(y:(y+block_size-1),x:(x+block_size-1)));%对原始图像进行分块DCT变换dct_block2 = dct2(orig_image(y:(y+block_size-1),x:(x+block_size-1)));tt=1;for ii = 1:block_sizefor jj = 1:block_sizeif DCT_coef(jj,ii)==1%取出DCT中频区域的信息sequence(tt) = dct_block1(jj,ii)-dct_block2(jj,ii);tt = tt+1;endendend%计算相关性if sequence == 0;correlation(kk) = 0;elsecorrelation(kk) = corr2(pn_sequence_zero,sequence);end%换行if x+block_size > Wwx = 1;if y+block_size >Hwy=1;elsey = y+block_size;endelsex = x+block_size;endend%相关性大于0.5嵌入,否则表明未被嵌入for kk = 1:mif correlation(kk)>=0.5watermark_vector(kk) = 1;elsewatermark_vector(kk) = 0;endend%计算原始图像的方差xx = 1;for j = 1:cfor i = 1:dmean(xx)=1/64*(sum(sum(orig_image(((1+(j-1)*8):j*8),((1+(i-1)*8):i*8))))); variance(xx)=1/64*sum(sum((orig_image((1+(j-1)*8:j*8),(1+(i-1)*8:i*8))-mean(xx)).^2));xx = xx+1;endend%取出方差最大的前N块A = sort(variance);A = fliplr(A);%最终降序排列B = A(1:n);%根据原始图像方差最大的前N块的位置把水印信息提取出来variance_o = zeros(1,n);for g = 1:nfor h = 1:mif B(g) == variance(h)variance_o(g) = watermark_vector(h);h = m;endendendwatermark_o = variance_o;%重组水印信息watermark = reshape(watermark_o(1:Ho*Wo),Ho,Wo);%计算提取的水印和原始图像的相似度%sim = corr2(orig_watermark,watermark);%把提取的水印信息保存imwrite(watermark,'watermark.jpg','jpg');figure;subplot(211)imshow(orig_watermark,[]);xlabel('原水印图像');subplot(212)imshow(watermark,[])xlabel('提取出的水印图像');实验结果:提取出的水印,左侧与原图几乎一致,中间略有失真,右侧失真较大。
基于图像预处理的DCT数字水印算法及其MATLAB实现
基于图像预处理的DCT数字水印算法及其MATLAB实现冯战申;贺勤;臧振戎
【期刊名称】《许昌学院学报》
【年(卷),期】2009(028)002
【摘要】介绍了数字水印的产生、发展及其应用,讨论了数字水印的分类,提出了图像的预处理思想,利用MATLAB中的剪切函数、缩放函数,以及调整图像直方图的方法对图像进行预处理,并用MATLAB进行了仿真.实验结果表明:预处理在DCT数字水印算法的前期工作中有较好作用.
【总页数】5页(P90-94)
【作者】冯战申;贺勤;臧振戎
【作者单位】许昌学院,数学系,河南,许昌,461000;许昌学院,数学系,河南,许
昌,461000;许昌学院,数学系,河南,许昌,461000
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.基于DCT数字水印算法的Matlab实现 [J], 任晓扬;韩勇
2.一种基于万有引力定律的图像预处理和DCT的数字水印算法 [J], 欧静
3.基于图像纹理特性的DCT域数字水印算法 [J], 程兴国;张建华
4.一类新的DCT数字水印算法及其MATLAB实现 [J], 田勇;贺勤
5.基于DCT域的图像数字水印算法及matlab实现 [J], 吴和静;闵昆龙;刘芳;刘兴鹏
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。
数字水印是信息隐藏技术的一个重要研究方向。
随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信。
当数字水印应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。
数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。
数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。
本文主要是根据所学的数字图象处理知识,在MATLAB环境下,通过系统编程的方式,建立并实现基于DCT域的数字水印加密系统。
该系统主要包含数字水印的嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效的技术保障。
关键词:数字水印;MATLAB;DCT目录1 课程设计目的 (1)2 课程设计要求 (2)3 数字水印技术基本原理 (3)3.1 数字水印基本框架 (3)3.2 算法分类 (3)3.2.1 DCT法 (4)3.2.2 其他方法 (4)3.3 实际需要考虑的问题 (4)3.3.1 不可见性 (4)3.3.2 鲁棒性 (5)3.3.3 水印容量 (5)3.3.4 安全性 (5)4 基于DCT变换仿真 (6)4.1 算法原理 (6)4.1.1 准备工作 (6)4.1.2 选取8*8变换块 (7)4.1.3 边界自适应 (7)4.1.4 DCT变换与嵌入 (7)4.1.5 恢复空域 (8)4.2 嵌入算法扩展 (8)4.2.1 RGB彩色图像三个矩阵的划分 (8)4.2.2 八色彩色水印 (8)4.3 水印的提取 (9)4.4 仿真程序 (9)5 结果分析 (14)结束语 (16)参考文献 (17)1 课程设计目的数字水印技术是用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。
数字水印是信息隐藏技术的一个重要研究方向。
在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。
从主观上讲,理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。
然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术的应用,因为实际应用一般只偏重其中的一个方面。
如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。
但对保证数据安全来说,情况恰恰相反,各种保密的数据随时面临着被盗取和篡改的危险,所以鲁棒性是十分重要的,此时,隐藏数据量的要求居于次要地位。
数字水印技术是通过一定的算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的知觉系统觉察或注意到。
水印信息可以是作者的序列号、公司标志、有特殊意义的文本等,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。
与加密技术不同,数字水印技术并不能阻止盗版活动的发生,但它可以判别对象是否受到保护,监视被保护数据的传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据。
总的来说,数字水印可以携带有版权保护信息和认证信息,保护数字产品的合法拷贝和传播。
2 课程设计要求利用所学的数字图像处理技术,建立并实现基于DCT的数字水印加密系统,利用MATLAB软件系统来实现水印的嵌入和提取,并对算法的不可见性、鲁棒性进行测试。
具体要求:(1)熟悉和掌握MATLAB程序设计方法;(2)学习和熟悉MATLAB图像处理工具箱;(3)学会运用MATLAB工具箱对图像进行处理和分析;(4)能对图像jpg格式进行打开、保存、另存、退出等功能操作;(5)利用所学数字图像处理技术知识、MATLAB软件对图像进行水印的嵌入和提取;(6)在程序开发时,清楚主要实现函数目的和作用,需要在程序书写时做适当注释说明,理解每一句函数的具体意义和使用范围;(7)每个程序都必须做到功能仿真成功,运行结果以图片的形式粘贴到报告中。
3 数字水印技术基本原理3.1 数字水印基本框架一个数字水印系统一般包括三个基本方面:水印的生成、水印的嵌入和水印的提取或检测。
数字水印的嵌入和提取的一般过程基本框架如图3.1,图3.2所示。
图3.1 水印嵌入的一般过程基本框架图3.2 水印检测的一般过程基本框架3.2 算法分类根据水印实现方法不同,数字水印可分为空(时)域数字水印和频域数字水印。
空域数字水印是直接在信号空间上叠加水印信号,而频域法加入数字水印的原理是首先将原始信号(语音一维信号、图像二维信号)变换到频域,常用的变换一般有DWT、DCT、DFT、WP和分形。
然后,对加入了水印信息的信号进行频域反变换(IDWT、IDCT、DFT、WP),得到含有水印信息的信号。
频域法检测水印的原理是将原始信号与待检测信号同时进行变换域变换,比较两者的区别,进行嵌入水印的逆运算,得出水印信息。
如果是可读的水印,那么就此结束,如果是不可读水印,如高斯噪声,就将得出的水印与已知水印作比较,由相关性判断,待检测信号含不含水印,故水印的检测有两个结束点。
频域法有以下优点:嵌入的水印信号能量可以分布到空域的所有像素上,有利于保证水印的不可见性;视觉系统(HVS)的某些特性(如频率的掩蔽特性)可以更方便地结合到水印编码过程中;频域法可与国际数据压缩标准兼容,从而实现在压缩域(compressed domain)内的水印编码。
3.2.1 DCT法对原始信号做DCT的算法:Cox和Piva等人提出的DCT技术的经典之作。
Cox利用随机数发生器产生标准正态序列作为水印信息对图像进行整体DCT变换后,选取除去DC系数之外部分较低频率系数叠加水印信息;Piva则修改整幅图像的中频部分。
对原始信号分块后,再作DCT的算法:Hsu和Wu把图像进行8*8分块,将一个二进制序列作为水印放入DCT的中频区;有些学者则计算整个图像的DCT,把一个实数序列嵌入DCT的中频系数上。
选择中频区的好处是一方面尽量减少嵌入信息对图像主观视觉的影响;同时,尽量避免有损压缩对水印信息可能带来的损失。
还有一种DCT方法就是把水印信息嵌入到高频系数上,但是采用这种方法,抗压缩性非常差。
3.2.2 其他方法其它变换域还有Fourier-mellin域、Fourier变换域、分形或WP(Wavelet Package)等。
以上的变换域算法计算量都非常大,编程实现这些变换和逆变换也需要好好下一番功夫,由此造成研究人员把大量的时间和精力浪费在与水印算法研究无关的问题上。
3.3 实际需要考虑的问题在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。
从主观上讲,理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。
然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术的应用,因为实际应用一般只偏重其中的一个方面。
如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。
但对保证数据安全来说,情况恰恰相反,各种保密的数据随时面临着被盗取和篡改的危险,所以鲁棒性是十分重要的,此时,隐藏数据量的要求居于次要地位。
3.3.1 不可见性对于以模拟方式存储和分发的信息(如电视节目),或是以物理形式存储的信息(如报刊、杂志),用可见的标志就足以表明其所有权。
但在数字方式下,标志信息极易被修改或擦除。
因此应根据多媒体信息的类型和几何特性,利用用户提供的密钥将水印隐藏到一系列随机产生的位置中,使人无法察觉。
图3.3左侧为原始图像,右侧为嵌入水印后的图像。
图3.3 原始图像与嵌入水印后的图像对比3.3.2 鲁棒性水印必须对一般的信号处理操作(如滤波、平滑、增强、有失真压缩等)、删除攻击、迷惑攻击等具有鲁棒性。
除非对数字水印具有足够的先验知识,任何破坏和消除水印的企图都将严重破坏多媒体信息的质量。
3.3.3 水印容量嵌入的水印信息必须足以表示多媒体内容的创建者或所有者的标志信息,或是购买者的序列号。
这样在发生版权纠纷时,创建者或所有者的信息用于标示数据的版权所有者,而序列号用于标示违反协议而为盗版提供多媒体数据的用户。
数字水印在多媒体信息安全中的另一个重要应用就是内容的真实性鉴定(即认证)。
当多媒体内容发生改变时,具有较强的敏感性的易损水印(Fragile watermarking)会随之发生一定程度的改变,从而可以鉴定原始数据是否被篡改。
3.3.4 安全性水印的安全性要求未授权者不能发现数字作品中含有水印信息。
或者算法安全性仅仅依赖于密钥而不依赖于算法的保密性。
因此在没有密钥的情况下,未授权者即使知道含有水印信息和知道水印算法,也不能提取出水印信息或者破坏水印信息。
另外算法还应该能够抵抗合谋攻击。
由于水印特性的要求对应用的依赖型很强,恰当的评价准则和具体的应用有关。
4 基于DCT变换仿真4.1 算法原理离散余弦变换(Diserete Cosine Transform)简称DCT变换。
离散余弦变换是傅立叶变换的一种特殊情况,在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出离散余弦变换,因此余弦变换与傅里叶变换一样有明确的物理意义,DCT变换避免了傅里叶变换中的复数运算,它是基于实数的正交变换。
DCT变换域数字水印算法的基本原理是将空域图像变成频域,然后将水印信息嵌入其直流项之中,最后将频域转换成空域以完成图片的水印的嵌入。
其主要思想是:在DCT变换域上选择中、低频系数叠加水印信息,因为人眼的感觉主要集中在中、低频段,攻击者破坏水印时,不可避免地会引起图像质量的严重下降,而且一般的图像处理也不会改变这部分数据。
再者,由于JPEG、MPEG等压缩算法的核心是在DCT变换域上进行量化,故通过巧妙的融合水印和量化过程,可以使水印抵御一定的有损压缩。
此外,DCT变换域系数的统计分布有比较好的数学模型,可以从理论上估计水印的信息量。
基于DCT变换的数字水印在逆变换时会散布在整个图像空间中,故水印不像空间域技术那样易受到裁剪、低通滤波等攻击的影响,具有鲁棒性高、隐蔽性好的特点。
4.1.1 准备工作首先要读入一幅待嵌入的原始图片I=f1(x,y)以及一幅水印图M=f2(x,y)。