一个小波变换实例与Matlab实现

一个小波变换实例与Matlab实现
一个小波变换实例与Matlab实现

1、 选择()t ?或?()?

ω,使{}()k Z t k ?∈-为一组正交归一基; 2、 求n h 。

1,(),()n n h t t ??-=

或??()(2)/()H ω?

ω?ω= 3、 由n h 求n g 。

1(1)n n n g h -=- 或()()i G e H t ωωωπ-=

4、 由n g ,()t ?构成正交小波基函数()t φ

1,()()n n t g t φ?-=∑

或??()(/2)(/2)G φ

ωω?ω= Haar 小波的构造

1)、选择尺度函数。

101()0t t ? ≤≤?=? ?其他

易知(n)t ?-关于n 为一正交归一基。

2)、求n h

1,(),()n n h t t ??-

=()2t-n)t dt ??(

其中

11(2)220n n t t n ?+? ≤≤?-=?? ?其他

当n=0时,

11(2)20t t ?? 0≤≤?=?? ?其他

当n=1时,

111(21)20t t ?? ≤≤?-=?? ?其他

故,当n=0,n=1时

1()(2)0n n t t n ?? =0,=1??-=? ?

其他 当n=0时,

()(2)t t n ???-1120t ? 0≤≤?=?? ?其他

当n=1时,

()(2)t t n ???-11120t ? ≤≤?=?? ?其他

n

h ()2t-n)t dt ??

(1/0n n ?=0,=1?=? ??

其他 3)、求n g 。

11/0(1)1/10n n n n g h n -?=??=-=-=?? ??

其他

4)、求()t φ。

1,()()n n t g t φ?-=∑

=0-1,011,1()()g t g t ??-+

(2)(21)t t - =110211120t t ? ≤≤???- ≤≤?? ???

其他

其图形如下:

1、 Haar 尺度函数

101()0t t ? ≤≤?=? ?

其他 Haar 尺度函数空间:

}{,(22),(21),(2),(21),(21),j j j j j x x x x x ?????++-- j 为非负的整数,该空间又称为j 级阶梯函数空间j V 。则

01211j j j V V V V V V -+???????

随j 的增加,分辨更为精细。

2、 性质

函数集}{/22(2):j j x k k Z ?-∈是j V 的一个标准正交基。

0()f x V ∈当且仅当(2)j j f x V ∈。

3、 Haar 小波函数

函数满足两点:(1)φ是1V 的成员;(2)φ与0V 正交。

()x φ=(2)(21)x x ??--

性质:

()0x dx φ+∞

-∞=?

()x φ是对称的、局部支撑的函数;

小波函数空间:(2),j j k

k k Z W a x k a R φ∈-∈∑

j W 是j V 的正交互补,即1j j j V V W +=⊕

函数集}{/22(2):j j x k k Z φ-∈是j W 的一个标准正交基

4、 Haar 小波分解与重建

对Haar 小波,有11(2)((2)(2))j j j x x x φφ?--=+/2 11(21)((2)(2))/2j j j x x x φφ?---=-

Haar 小波分解定理:

设:()(2),()j j k

j j k Z f x a x k f x V φ∈=-∈∑

则它可以有如下分解:

11j j j f f ω--=+

11111(2),()j j j k j j k Z

f a x k f x V φ-----∈=-∈∑

11111(2),()j j j k j j k Z

b x k x W ω?ω-----∈=-∈∑

12212

j k k k a a a -++= 12212j k

k k a a b -+-= 把函数f 分解成一个小波空间与一个尺度空间的分量

()2(4)2(41)(42)(43)f x x x x x φφφφ=+-+---

解:按照分解定理,此j=2,;k=0,1,2,3对应的系数是2,2,1,-1;代入公式,得出分解后尺度函数空间元素的系数是2222+=,1102-=;分解后小波函数空间元素的系数是2202-=,1(1)12

--=;从而 ()2(2)(21)f x x x φ?=+-

Matlab程序

image1=imread('512.jpg');

image1=rgb2gray(image1);

subplot(2,2,1);

imshow(image1);

title('original image');

image1=double(image1);

imagew=imread('shuiyin.bmp');

imagew=rgb2gray (imagew);

subplot(2,2,2);

imshow(imagew);

title('original watermark');

[ca,ch,cv,cd]=dwt2(image1,'db1');

[ca1,ch1,cv1,cd1]=dwt2(ca,'db1');

[cas,chs,cvs,cds]=dwt2(ca1,'db1');

M=512;

N=64;

for i=1:N

for j=1:N

Ca(i,j)=cas(i,j)+0.01*imagew(i,j);

end;

end;

IM=idwt2(Ca,chs,cvs,cds,'db1');

IM1=idwt2(IM,ch1,cv1,cd1,'db1');

markedimage=double(idwt2(IM1,ch,cv,cd,'db1'));

subplot(2,2,3);

colormap(gray(256));

image(markedimage);

title('marked image');

imwrite(markedimage,gray(256),'watermarked.bmp','bmp'); image1=imread('512.jpg');

image1=rgb2gray(image1);

image1=double(image1);

imaged=imread('watermarked.bmp');

[ca,ch,cv,cd]=dwt2(image1,'db1');

[ca1,ch1,cv1,cd1]=dwt2(ca,'db1');

[cas,chs,cvs,cds]=dwt2(ca1,'db1');

[caa,chh,cvv,cdd]=dwt2(imaged,'db1');

[caa1,chh1,cvv1,cdd1]=dwt2(caa,'db1');

[caas,chhs,cvvs,cdds]=dwt2(caa1,'db1');

for p=1:N

for q=1:N

W(p,q)=100*(caas(p,q)-cas(p,q));

end;

subplot(2,2,4);

colormap(gray(256));

image(W);

title('从含水印图像中提取的水印'); imwrite(W,gray(256),'watermark.bmp','bmp');

相关主题
相关文档
最新文档