您的当前位置:首页正文

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

2020-12-23 来源:欧得旅游网
基于Matlab的图像数字水印技术

摘要:信息技术和计算机网络的迅速发展,使得包括图像在内的数字媒体信息的交流达到了前所未有的深度和广度,与此同时,也使得在网上传播的图像版权保护和服务认证面临着日益严峻的挑战。

做为信息隐藏技术在计算机领域的一项重要应用,数字水印具有双重安全性,即水印的添加与否具有不可知性以及水印的提取受秘钥的保护,因而非常适用于信息安全问题,为保护多媒体信息的版权及信息的合法使用提供了一种新的解决思路。 关键字:数字图像 水印技术 Matlab 正文:1.图像数字水印技术的概念与特点

数字水印可以看作是插入到数字媒体中的数字信号或模板。水印技术把媒体从一种形式转换为另一种形式,但是水印技术基本上没有改变媒体,确保媒体可以认知,一旦解密后,密码术对媒体没有任何保护,但水印可以始终保存在媒体中。把与媒体、作者、版权和使用许可的有关信息作为水印嵌入到媒体中,需要时从媒体中检测或提取出这些信息,用于证明原创作者对作品的所有权的证据。水印与宿主数据紧密结合并隐藏其中,成为宿主数据不可分离的组成部分。 1.1基本原理

图像数字水印技术是指用信号处理的方法在图像数据中嵌入隐含标记,水印分为可感知和不易感知两种。

(1)可感知水印。这是一种可以看见的水印,就像插入或覆盖在图像上的标识。它与可视纸上的水印相似,这类水印一般选用较淡或半

透明图案。它既可以证明作品的归属,又不妨碍对作品的欣赏,主要应用于标识那些可在图像数据库或Internet上得到的图像预览,防止这些图像被作为商业用途。

(2)不易感知水印。这是一种应用更加广泛的水印,主要用来鉴别产品的真伪及产权保护。人们在感觉上的冗余是这种水印存在的前提 。与可视水印相反,它加在图像当中从表面上是不易察觉的。由于数字产品都是为了满足感官需求,这就要求它的水印不可破坏其欣赏价值与使用价值,要求水印不引人注目。虽然不易感知的数字水印不能阻止合法产品被非法复制,但是当发生版权纠纷时,所有者可以从中提取出标记,从而证明物品为某人所有。 1.2主要特性

(1)保真性。 嵌入图像中的水印应该在视觉上是不可见的,不会影响原图像的质量。但值得注意的是,加入信号是视觉上不可见的,那么基于视觉可见性的有损压缩算法就有可能忽略这个信号,从而除去水印。为了解决此类问题,可以考虑让水印在一定程度上是视觉可见的。当然,只有图像发布者才知道这一点,而观察者是不可能从视觉上判断图像中是否存在水印的。

(2)鲁棒性。加入水印的图像在传播过程中必然会受到各种有意无意的干扰,因此,一个数字水印应该能够承受大量的不同的物理和几何失真,包括有意的或无意(图像压缩、滤波、AD与DA转换、噪声污染和尺寸变化等)的攻击,即经过上述攻击后,水印算法仍能从水印图像中提取出嵌入的水印或证明水印的存在,若攻击者试图删除水

印,将导致载体的彻底破坏。

(3)隐蔽性。即水印是不易察觉的。水印技术的首要条件是加入水印的图像与原始图像基本上相同,图像的质量不因水印加入有明显的改变。

(4)安全性。水印信息隐藏于数据而非文件夹中,文件格式的变换不导致水印数据的丢失。

(5)可证明性。能够为受到保护的信息产品的归属提供完全或可靠的证明。

(6)低复杂性。水印嵌入和提取算法应当简单易行。 2.数字水印的嵌入与检测提取 (1)水印的嵌入

水印嵌入就是把水印信号W:{∞(.c)J嵌入到原始图像Xo={xo(K)}中。水印嵌入过程如图1所示

秘钥 水印信息 原始图像 水印嵌入算法 含水印图像

图1 水印嵌入过程

(2)水印的检测与提取

在某水印系统中,水印可以被精确地提取出来,这一过程被称作水印提取。例如在完整性确认的应用中,必须能够精确地提取出嵌入的水印,并且通过水印的完整性来确认多媒体数据的完整性,如果提

取出的水印发生了部分的变化,最好还能够通过变化的水印的位置来确定原始数据被篡改的位置。

水印在提取检测时可以需要原始图像的参与,也可以不需要原始图像的参与。但将水印技术用于图像的网络发布和传播时,如果检测时需要使用原始图像则是个缺陷,因此,当前大多数的水印检测算法不需要原始图像的参与。图2、图3分别是水印提取和检测的框图,虚线部分表示在提取或判断水印信号时原始图像不是必需的。

秘钥 原始图像 含水印图像 水印提取算法 水印信息 图2 水印提取过程 秘钥 原始图像 原始水印 含水印图像 水印检测算法 是否含水印 图3 水印检测过程

3.水印检测与提取的Matlab实现 下面是嵌入与提取水印的程序实例 %嵌入水印的程序代码 M =256;% 原图像长度 N=32;% 水印图像长度

K =8:I=zeros(M,M ) J=zeros(N,N):8LOCK =zeros(K,K):% 显示原图像

subplot(3,2.1);imread( mona.bmp ,

bmp );imshow(I);title( 原始公开图像);% 显示水印图像 subplot(3,2,2) J=imread(flag.bmp , bmp);imshow(J);title( 水印图像) %水印嵌入 forP=1:N forq:1:N

x=fP一1)%K+1:Y=fq一1) K+1;

BLOCK=}f×: x+K一1 y- Y+K一1) BLOCK=dct2 (BL0CK): If(P,q)= =0 a= 一1: else a:1: end

BL0CK=BL0CK$(1+a$0 03):BL0CK=idct2(BL0CK) I(×:X+K一1 y:Y+K一1):BLOCK; end end

% 显示嵌入水印后的图像

subplot(3,2,3) imshow(1):title(嵌入水印后的图像):

imwrite(I, watermarked.bmp , bmp ): %从嵌八水印的图像中提取水印 I:imread( mona , bmp)

J:imread( watermarked bmp , bmp ) forP=1:N forq=1:N X=(P一1)女K+1: Y=(q一1)}K+1:

BLOCK1=l(×:X 4-K一1,v:Y+K一1): BLOCK2=J(×:X+K一1,y:Y+K一1): BL0CK1=idct2(BL0CK1): BL0CK2=idct2(BL0CK2):

a:BLOCK2(1,1)/BL0CK1(1,1)一1: ifa<0 W (P,q):O: else W (P,q)=1 end end end

% 显示提取的水印 subplot(3,2,4)

imshow(W ):

title( 从含水印图像中提取的水印); 仿真结果如下:

4.结果分析

嵌入水印信息后,原图与嵌入水印信息后的图像在视觉效果上没有明显分别,用肉眼几乎分辨不出,这说明这种算法充分利用人眼的视觉特性,嵌入水印后,水印的不可见性相当好,图像在嵌入水印前后视觉效果改变不大, 不影响图像的正常使用。

因篇幅问题不能全部显示,请点此查看更多更全内容