1、 图像小波变换信息隐藏实验教程教学幻灯片六小波与小波变换简述 通俗的讲,小波(wavelet)是一种在有限(小)区域内存在的波,是一种其函数表达式具有紧支集,即在有限范围内函数f (x)不等于零的特殊波形。假设存在一个时域函数(t),满足: (f 表示fourier变换) 或 ( )( )ft( )0t dt20( )Cd 小波与小波变换简述 则称(t)为一个母小波函数(Mother Wavelet Function)。一个母小波函数有如下几个特点: 1.因为, 而, 故而 。也就是说,一个母小波函数的直流分量(Direct current components)为0。换句话说,就是母小波函数
2、具有正负交替的特点,其均值为0。 2.一个母小波函数是一个带通信号。 ( )( )tjt edt( )0t dt(0)( )0t dt小波与小波变换简述 3.母小波函数随t绝对值的变大而最终衰减为0。即其函数表达式具有紧支集。下图是典型的小波母函数和小波函数。 图像小波变换 二维信号的小波分解就可以写为: 其中A为低频分量,D可以看为水平、垂直和对角三个方向上的高频分量。 1231( , )( , )( , )( , )( , )jjjjjAf x yA f x yD f x yD f x yD f x y图像小波变换 这里,我们选用的二维图像信号仍然是lenna.jpg。由于lenna是一个
3、RGB图像,我们仅对其R层进行实验。编写函数wavelet2D.m来完成实验。实验结果如下图所示。 图像小波变换图像小波变换 清晰的反映了两重小波分解后的各个频率段信号重构成的图像。可以发现,低频图像与原始图像是非常近似的,而高频部分也可以认为是冗余的噪声部分。所以,图像载体下的小波分解信息隐藏算法一般的都是将信息隐藏于分解后的低频部分,从而获得高的鲁棒性。当然的,将信息隐藏于高频系数中,可以获得很好的不可见性。不可见性与鲁棒性是信息隐藏算法性能好坏的重要判定依据,二者可以看成是一对矛盾。解决这一矛盾的方法是“折衷”。 图像小波变换 最后,我们来看一下这些频率系数的具体内容:lennaR是一个
4、256256的二维信号,对其做1层小波分解,得到C是一个165536的行向量,记录的是低频、水平高频、垂直高频和对角高频( )四个部分的频率系数。S是一个32的矩阵,其第一行表明尺度1下的低频系数为128128长度;第二行表明尺度1下的高频系数为128128长度;第三行表明lennaR是一个256256的二维信号。lowf和highfH,highfD和highfV分别对应分离出来的四个部分的系数矩阵。 1231111( , ),( , ),( , ),( , )A f x yD f x yD f x yD f x y图像小波变换图像小波变换图像小波变换 对lennaR做2层小波分解,得到C也是
5、一个165536的行向量,记录的是2尺度低频、2尺度水平高频、2尺度垂直高频、2尺度对角高频、1尺度水平高频、1尺度垂直高频和1尺度对角高频( )七个部分的频率系数。下图中S是一个42的矩阵,其第一行表明尺度2下的低频系数为6464长度;第二行表明尺度2下的高频系数为6464长度;第三行表明尺度1下的高频系数为128128长度;1232222( , ),( , ),( , ),( , ),A f x y D f x y D f x y D f x y1211( , ),( , )D f x y D f x y31( , )D f x y图像小波变换 第四行表明lennaR是一个256256的二
6、维信号。lowf和highfH,highfD和highfV对应2尺度下分离出来四个部分的系数矩阵。 图像小波变换 比较做1层分解和2层分解频率系数图,可以发现MATLAB中的二维DWT有如下规律:1、返回的频率系数(C向量中)以如下形式存放C=A(level)|H(level)|V(level)|D(level)H(level-1)V(level-1)D(level-1)|H(1)|V(1)|D(1) 2、返回频率系数的同时,返回一个长度记录矩阵S。S的格式为: S(1,:)=尺度level下的低频系数长度 图像小波变换 S(i,:)=尺度level-i+2下的低频系数长度 S(level+2,:)=原始信号的大小 3、原始信号通过两个共轭滤波器后,得到高、低频两路信号。假设原始信号抽取256个点参与计算,那么将得到512个频率数据,如此下去冗余太大。所以,在滤波之后还要进一步抽样以减少冗余。通行的方法是隔一数丢弃一个数,从而保证滤波后的两路信号与原始信号数据长度一致。这三个结论,对小波信息隐藏实验有很大帮助。