基于Matlab 的数字图像水印技术
摘要:数字水印技术涉及到许多图像处理算法以及数学计算工具等,如果用普通编程工具实现上述算法,需要要花费大量的时间,MathWorks公司推出的一种简单、高效、功能极强的高级语言——MATLAB语言,它具有高性能数值计算能力,可视化计算环境。只需短短的几行代码就可在MATLAB中解决许多复杂的计算问题。
关键字:图像处理,数字水印, MATLAB
0 引言
随着Internet的普及,信息的安全保护问题越来越备受关注。如何有效地防止数据的非法复制以及鉴别数字媒体的知识产权,成为急需解决的问题。Caronni在1993年提出了数字水印,并将其应用于数字图像,后来,将数字水印的概念扩展到电视图像等领域,数字水印技术是一种版权保护的重要手段,得到了广泛的研究和应用。本文简要介绍一下基于Matlab的数字图像水印技术。介绍数字水印的原理以及使用方法,探索了基于离散余弦变换(DCT)的数字图像水印算法,并借助MATLAB,实现数字水印的嵌入、提取以及攻击测试。
1 数字水印技术
1.1 数字水印
数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体当中,例如包括多媒体、文档、软件等,但不影响原载体的使用价值,也不容易被人的知觉系统,如视觉或听觉系统觉察到。通过这些隐藏在载体中的信息,可以确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等。数字水印是信息隐藏技术的重要研究方向之一。从信号处理的角度看,在载体图像中嵌入数字水印,可以视为在强背景(即原始公开图像)下叠加一个视觉上看不到的弱信号(即水印图像),由于人的视觉系统(Human Visual System,HVS)[1]分辨率受到一定的限制,只要保证叠加信号的幅度低于HVS的对比度门限,HVS就感觉不到信号的存在,因此,通过对载体对象作一定的调整变换,就有可能在不引起人感知的情况下嵌入一些信息。
1.2 数字水印技术的特点
数字水印技术大概具有以下几个方面的特点:
1.2.1 安全性
数字水印的信息应是安全的,很难篡改或伪造,同时,应当有较低的误检测率,如果原内容发生变化,数字水印也发生变化,从而可以检测原始数据的变更;当然数字水印同样对重复添加也有很强的抵抗性。
1.2.2 隐蔽性
数字水印应是不容易被察觉的,而且是不影响被保护数据的正常使用的,也不会降质的。
1.2.3 鲁棒性
是指在经历各种有意或无意的信号处理过程后,数字水印仍能保持部分完整性,并且能被准确鉴别。可能的信号处理过程包括信道噪声、滤波、A/D与D/A转换、重采样、剪切、位移、尺度变化和有损压缩编码等。主要被用于版权保护的数字水印易损水印(Fragile Watermarking),用于完整性保护,这种水印也是在内容数据中嵌入不可见的信息。如果内容发生改变时,这些水印信息也会发生相应的改变,从而可以鉴定原始数据是否被篡改。
1.2.4 水印容量
是指载体在没发生形变的前提下可嵌入的水印信息量。嵌入的水印信息必须足以表示多媒体内容的创建者的标志信息,或购买者的序列号,这样有利于解决版权纠纷和保护数字产权合法拥有者的利益。尤其是隐蔽通信领域的特殊性,对水印的容量需求极大。
1.3 数字