logo资料库

基于Matlab的数字图像水印技术.doc

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
基于Matlab 的数字图像水印技术
0 引言
1 数字水印技术
2 高效并实用的工具——MATLAB      
3 数字水印的嵌入
4 数字水印的提取与检测
5 利用Matlab实现图像数字水印加载算法
6 水印攻击测试
7 实验程序
8 结语
[参考文献]
基于 Matlab 的数字图像水印技术 ********** 摘要:数字水印技术涉及到许多图像处理算法以及数学计算工具等,如果用普通编程工具实现上述算法, 需要要花费大量的时间,MathWorks 公司推出的一种简单、高效、功能极强的高级语言——MATLAB 语言, 它具有高性能数值计算能力,可视化计算环境。只需短短的几行代码就可在 MATLAB 中解决许多复杂的计算 问题。 关键字:图像处理,数字水印, MATLAB 0 引言 随着 Internet 的普及,信息的安全保护问题越来越备受关注。如何有效地防止数据的 非法复制以及鉴别数字媒体的知识产权,成为急需解决的问题。Caronni 在 1993 年提出了 数字水印,并将其应用于数字图像,后来,将数字水印的概念扩展到电视图像等领域,数字 水印技术是一种版权保护的重要手段,得到了广泛的研究和应用。本文简要介绍一下基于 Matlab 的数字图像水印技术。介绍数字水印的原理以及使用方法,探索了基于离散余弦变 换(DCT)的数字图像水印算法,并借助 MATLAB,实现数字水印的嵌入、提取以及攻击测试。 1 数字水印技术 1.1 数字水印 数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字 载体当中,例如包括多媒体、文档、软件等,但不影响原载体的使用价值,也不容易被人的 知觉系统,如视觉或听觉系统觉察到。通过这些隐藏在载体中的信息,可以确认内容创建者、 购买者、传送隐秘信息或者判断载体是否被篡改等。数字水印是信息隐藏技术的重要研究方 向之一。从信号处理的角度看,在载体图像中嵌入数字水印,可以视为在强背景(即原始公 开图像)下叠加一个视觉上看不到的弱信号(即水印图像),由于人的视觉系统(Human Visual 1
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 数字水印的应用领域 伴随着数字水印技术的发展,数字水印的应用领域也得到了相应扩展,数字水印的基本 应用领域是版权保护、隐藏标识、认证和安全不可见通信等。当数字水印应用于版权保护时, 潜在的应用市场在包括电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。数 字水印用于隐藏标识时,可以在医学、制图、数字成像、数字图像监控、多媒体索引以及基 于内容的检索等领域得到应用。数字水印的认证方面主要用于 ID 卡、信用卡、ATM 卡等上 面数字水印的安全不可见通信,将在国防和情报部门得到广泛的应用。 多媒体技术的飞速 发展和 Internet 的普及带来了一系列政治、经济、军事和文化方面的问题,产生了许多新 的研究热点,以下几个倍受关注的问题构成了数字水印的研究背景。 2
1.3.1 数字作品的知识产权保护 数字作品,如电脑美术、扫描图像、数字音乐、视频、三维动画等的版权保护是当前的 热点问题。由于数字作品的拷贝、修改非常容易,并且可以做到与原作完全相同,所以原创 者不得不采用一些严重损害作品质量的办法,给作品加上版权标志,而这种明显可见的标志 很容易被篡改。“数字水印”利用数据隐藏原理,使版权标志不可见或不可听,既不损害原 作品,又能够达到版权保护的目的。目前,版权保护的数字水印技术已经进入了初步实用化 阶段,IBM 公司在其“数字图书馆”软件中就使用了数字水印功能,Adobe 公司也在其著名 的 Photoshop 软件中,集成了 Digimarc 公司的数字水印插件。实事求是地说,目前市场上 的数字水印产品在技术上还不成熟,非常容易被破坏或破解,距离真正的实用还有很长的路 要走。 1.3.2 商务交易中的票据防伪 随着高质量图像的输入输出设备的发展,尤其是精度超过 1200dpi 的彩色喷墨、激光 打印机和高精度彩色复印机的出现,使货币、支票以及其他票据的伪造变得更加容易。另一 方面,在从传统商务向电子商务转变的过程中,会产生大量过度性的电子文件,如各种纸质 票据的扫描图像等。尽管在网络安全技术成熟以后,各种电子票据还需要一些非密码的认证 方式。数字水印技术可以为各种票据提供不可见的认证标志,从而很大程度增加了伪造的难 度。 1.3.3 证件真伪鉴别 信息隐藏技术可以在很大范围内应用,作为证件来说,每个人需要不只一个证件,证明 个人身份的包括:身份证、护照、驾驶证、出入证等;证明某种能力的包括:各种学历证书、 资格证书等。国内目前在证件防伪领域面临巨大的商机,因为缺少有效的措施,使得“造 假”、“买假”、“用假”泛滥,已经严重地干扰了正常的经济秩序,对国家的形像也造成 了不良影响。通过水印技术可以确认该证件的真伪,使得该证件无法仿造假。 2 高效并实用的工具——MATLAB Matlab 是当前在国内外十分流行的工程设计和系统仿真软件包。它是 MathWorks 公司在 1982 年推出的一套高性能的数值计算以及可视化的软件,它把数值分析、矩阵运算、 信号处理和图形显示集于一体,构成了一个方便的、界面友好的用户环境。 3
Matlab 一推出就得到了各个领域专家、学者的广泛关注,其强大的扩展功能为各个 领域的应用提供了基础。由各个专家学者相继推出的 MATLAB 工具箱,其中的信号处理 (signal processing)、控制系统(control system)、神经网络(neural network)、图像处 理(image processing)、鲁棒控制(robust control)、非线性系统控制设计(nonlinear system control design)、系统辨识(system identification)、最优化(optimization)、 模糊逻辑(fuzzy logic)、小波(wavelet)、通信(communication)、统计(statistics)等工 具箱,这些工具箱给各个领域的研究工作和工程应用提供了有力的工具,凭借这些“巨人肩 上的工具”,各个层次的研究人员可直观、方便地进行分析、计算以及设计工作,从而大大 地节省了时间。 3 数字水印的嵌入 水印嵌入就是把水印信号嵌入到原始图像中。水印嵌入过程如图所示 图 1 水印提取过程 水印嵌入准则包括两个准则:H 法准则和乘法准则。其中惩罚准则有强度因子,为保证 在水印不可见的前提下,尽可能提高嵌入水印的强度。强度因子的选择必须考虑图像的性质 以及视觉系统的特性。 4 数字水印的提取与检测 在某水印系统中,水印可以被精确地提取出来,这一过程就是水印提取。例如在完整性 确认的应用中,必须能够精确地提取出所嵌入的水印,还要通过水印的完整性来确认多媒体 数据的完整性。如果提取出的水印发生了部分的变化,最好还能够通过变化的水印的位置来 4
确定原始数据有没有被篡改的位置。水印在提取检测时可以需要原始图像的参与,也可以不 需要原始图像的参与。但将水印技术用于图像的网络发布和传播时,如果检测时需要使用原 始图像,则是个缺陷,因此,当前大多数的水印检测算法不需要原始图像的参与[2]。图 2 和 图 3 分别是水印提取和检测的框图。 图 2 水印提取过程 图 3 水印检测过程 5 利用 Matlab 实现图像数字水印加载算法 给图像加水印其实就是一个修改图像数据的过程, 来给图像隐藏带有特定含义的信息 编码。 目前,最常见的数字水印算法包括:最低有效位算法 LSB(Least significant bits)、 Patchwork 方法及纹理块映射编码方法、基于变换域方法等。其中 LSB 算法具有较大的信息 隐藏量,可是水印很脆弱,容易被擦除。Patchwork 方法和纹理块映射编码方法隐蔽性较好, 并且对于有损的 JPEG 和滤波、压缩和扭转等操作有较好的抵抗能力,可是仅适用于具有大 量纹理区域的图像,不能完全自动完成。 5
基于变换域方法具有较好的稳健性,变换又包括:离散余弦变换(DCT)、小波变换(WT)、 付氏变换(FFT)和哈马斯变换等。其中,基于分块的 DCT 是最常用的变换之一,因为现在所 采用的静止图像压缩标准 JPEG 也是基于分块 DCT 的。 本文采用离散余弦变换(DCT)设计了水印的嵌入算法,将二值图像作为水印信号,利用 Matlab(当前国内最流行的工程与设计软件)实现算法。 6 水印攻击测试 由于数字水印在实际应用中可能会遭到各种各样的攻击,因此对算法进行攻击测试是衡 量一个水印算法优劣的重要手段。本程序的后半部分就是一个水印攻击与水印提取的程序, 首先对嵌入水印后的图像进行 JPEG 压缩(一种水印攻击),而后从压缩的图像中提取出水印。 图 4 原始公开图像 图 5 水印图像 6
图 6 嵌入水印后的图像 图 7 加入高斯噪声的水印图像 图 8 从含水印图像中提取出的水印图像 7 实验程序 clear 7
clc M =512;%原图像长度 N =64;%水印图像长度 K =8; I=zeros(M,M);J=zeros(N,N);BLOCK=zeros(K,K); %显示原图像 subplot(2,3,1); I=imread('C:\Documents and Settings\Administrator\桌面\图像.jpg','jpg');imshow(I);title('原始 公开图像'); %显示水印图像 subplot(2,3,2); J=imread('C:\Documents and Settings\Administrator\桌面\水印.jpg','jpg');imshow(J);title ('水 印图像'); %水印嵌入 for p=1:N for q=1:N x=(p-1)*K+1; y=(q-1)*K+1; BLOCK =I(x:x+K-1,y:y+K-1);BLOCK=dct2(BLOCK); if J(p,q)==0 a=-1; else a=1; end BLOCK(1,1)=BLOCK(1,1)*(1+a*0.03);BLOCK=idct2(BLOCK); I(x:x+K-1,y:y+K-1)=BLOCK; end end %显示嵌入水印后的图像 subplot(2,3,3); imshow(I);title('嵌入水印后的图像'); 8
分享到:
收藏