数字水印 DCT域 联系客服

发布时间 : 星期日 文章数字水印 DCT域更新完毕开始阅读0e0aa8fc10661ed9ad51f3ea

息。另外基于DFT和DWT算法与上述算法具有相似的原理。这种 以变换域算法为代表的通用算法普遍采用变换技术,以便在频率域实现水印信号叠加,并借鉴扩频通讯技术对水印信号进行有效编码,从而提高了透明性和健壮性,同时还适当利用滤波技术对水印信号引入的高频噪声进行了消除,从而增加了对低频滤波的抵抗力。

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

4、NEC算法。 5、生理模型算法。

二、可实现数字水印技术的实用工具——Matlab

2.1概述

用Matlab研究数字水印的优点:(1)集成了DFT、DCT、DWT等函数有丰富的小波函数和处理函数,这不仅方便了研究人员,而且使源程序简洁明了、易于实现。(2)强大的数学运算功能。能够方便、高效地实现音频、视频中的大量矩阵运算。(3)提供了图像处理工具箱、小波分析工具箱、数字信号处理工具箱。用来编制跨数字图像处理技术、数字信息处理等多学科的数字水印技术是非常好的选择。(4)Matlab语言的使用者都可以是工具箱的作者,可以按照Matlab工具箱的规则,结果图像处理函数,开发专用数字水印工具箱。

2.2算法中常用的Matlab函数介绍

Matlab有丰富的库函数,其中有实现数字水印算法的FFT、DCT、DWT等函数和相关处理函数,大大简化了算法的实现。简要介绍与数字水印算法实现有关的一些常用函数。

1、图像文件输入输出函数

imread:从文件读取图像,图像文件可以是bm、pdf、jpeg、pcx、tiff、xwd等格式。

imwrite:把图像写成文件

load:将以mat为扩展名的图像文件调入到内存

save:将工作空间中的变量保存到以mat为扩展名的图像文件中 2、图像显示函数

image:建立并显示图像,它可返回一个图像的句柄给一个image对象

3

imshow:显示一幅图像 truesize:调整图像显示大小 3、LSB空间域算法常用函数 rand:产生随机序列

unit8:把其它类型对象转换为8位无符号整数类型 double:把其它类型对象转换为双精度数值

size:计算图像(矩阵)的大小 sum:对元素求和 reshape:重新排列矩阵 4、DCT域图像变换函数

dct,dct2:分别实现一维信号和二维信号的DCT(离散余弦变换) idct,idct2:分别实现一维信号和二维信号的IDCT(逆向离散余弦变换) 5、DWT域图像变换函数

dwt,dwt2:分别实现一维信号和二维信号的DWT(离散小波变换) idwt,idwt2:分别实现一维信号和二维信号的IDWT(离散小波变换) wavedec2:多级二维小波分解函数 waveinfo:提供小波包中所有的小波信息 6、攻击函数

imcrop:将图像剪裁成指定的矩形

imresize:使用指定的插值方法,调整图像大小

imrotate:使用指定的插值方法逆时针将图像旋转任意指定的角度 imadjust:用于调整图像的对比度 imnoise:给图像增加噪声

filter,filter2:实现对一维和二维信号的滤波

三、离散余弦变换(DCT)算法及水印实现

3.1DCT变换公式

DCT 变换公式是这一算法的核心,有必要先了解一下DCT 正反变换公式。DCT 正反变换公式的核心是余弦变换,计算速度比较快,水印技术所用的是二维变换,这里给出二维的DCT 正反变换公式,二维DCT 正变换公式为:

F(?,?)?c(u)c(v)?x?0M?1N?1?y?0f(x,y)cos?(2x?1)2Mcos?(2y?1)2N

?=0,1, ? ? ?, M-1;?=0,1, ? ? ?, N-1

4

其中:

?1M u?0 c(u)?? ?u?1,2???M?1?2?M?1v?0?N c(v)??

v?1,2???N?1?2?N二维DCT反变换公式为:

f(x,y)???c(u)c(v)F(u,v)cosu?0v?0M?1N?1?(2x?1)u2Mcos?(2y?1)v2N

x?0,1???M?1;y?0,1???N?1

其中x,y 为空间采样值,u,v 为频域采样值。

因为数字图像多用像素方阵来标识,即M=N,此时,二维DCT 正反变换可以简化为:

F(?,?)?c(u)c(v)?x?0N?1N?1?y?0f(x,y)cos?(2x?1)2Ncos?(2y?1)2N

u?0,1???N?1;v?0,1???N?1

f(x,y)???c(u)c(v)F(u,v)cosu?0v?0N?1N?1?(2x?1)u2Ncos?(2y?1)v2N

x?0,1???N?1;y?0,1???N?1

3.2二维DCT的性质

离散余弦变换是图像处理技术中几种最基本的酉变换之一。酉变化是线性变化的一种特殊形式,其基本线性运算式是严格可逆的,并且满足一定的正交条件。图像的酉变换可以被理解为分解图像数据为广义的二维频谱,变换域中每一分量对应于原图频谱函数的能量。

设IM′N 为M′N 的图像矩阵则该图像的二维DCT 变换可由下式表示:

FDCT=

其中

2M?NAM?MIM?NBN?N

5

?1,m?0时??2Am,i?? 其中0?m,i?M

?cos?m(2i?1),其他?2M??1,n?0时??2Bk,n??,其中0?n,k?N

?cos?n(2k?1),其他?2N?经过二维DCT 变换得到的DCT 系数矩阵GDCT 指示了一系列频率中每一个频率所对应的变化程度,图像的低频分量反映图像慢变化,即图像整体部分;图像的高频分量代表图像跳变的地方,即图像细节部分,如轮廓、边缘。根据人类视觉系统,图像整体比细节部分更为重要,若一幅图像经过处理后而视觉改变不大,则其低频分量必定改变程度不大。此算法采用了将数字水印的灰度值植入DCT 域的低频分量中的方法。

二维离散余弦变换是一种严格可逆的酉变换。它的两个矩阵AM′M BN′N 满足以下的正交条件:

AA?MNI BTB?I 22由此,易得到离散余弦逆变换(IDCT):

T IM?N?2M?NTTAM?BN?N?GDCT?N

正因为DCT 是一种严格可逆的正交变换,才可能对基于DCT 的植入算法实现准

确的数字水印滤波。

3.3DCT变换水印的实现

数字图像水印算法选择二值化灰度图像作为水印信息,根据水印图像的二值性选择不同的嵌入系数,并将载体图像进行8×8的分块,将数字水印的灰度值直接植入到载体灰度图像的DCT变换域中,实现水印的嵌入。具体方法如下:

设I是M×N大小的原始图像,J是水印图像大小为P×Q,M和N分别是P和Q的偶数倍,把水印J加载到图像I中,算法分以下几步进行:

1. 将I分解为(M/8)×(N/8)个8×8大小的方块B;同时,J也分解为 (M/8)×(N/8)个(8P/M)×(8Q/N)大小的方块V;

2. 对每一个B进行DCT变换:DB=DCT(B);

3. 加载水印对每一个DB和V,s(i)为从DB的中频选出的加载的位置,1≤

6