小波变换C语言实现代码

上传人:回**** 文档编号:203283158 上传时间:2023-04-24 格式:DOCX 页数:28 大小:35.27KB
收藏 版权申诉 举报 下载
小波变换C语言实现代码_第1页
第1页 / 共28页
小波变换C语言实现代码_第2页
第2页 / 共28页
小波变换C语言实现代码_第3页
第3页 / 共28页
资源描述:

《小波变换C语言实现代码》由会员分享,可在线阅读,更多相关《小波变换C语言实现代码(28页珍藏版)》请在装配图网上搜索。

1、#cluesti.#nclude#define hegt6#efin width 256oid woDWT(douowith, oble dwtit,i NumofBad);vidonDDWT(nt g, doubleogwit, douedwwidth);odtoDIWT(doldwtwidth, double rcwidth,t NumofBad);voi oneDW(int fla, ouble wtidt,dblrecwith);n mai()nt i,j;ouble oegtidth, dwthghwidt,cegtwidth;FL *ena;FIL *lna3; FILE*len4

2、;en = fope(c:e.aw, rb);lena3=fn(c:lna.rw, wb);l= foen(c:lena4.raw, wb);o (i = 0;i ht; i+) r(j = 0;j widt;j+)ogij fetc(len);wDD(org, dw,4);for( = 0; height/2;+)or (j= 0; with/2; j)orgidwij;twoDDWT(og,t,);for (i 0; ieiht;i+)for (j = 0; j wdt;j)putc(dwij, lena3);oDIDT(dwt,rec,);for( = 0; i hght/; i+)or

3、 (j= 0; j width/; +)wtjrecij;toDIDWT(t,rc,4);fo(i 0; i heiht; i+)for (j = 0; j ith; +)puc(eci,lena4);return 0;void twoDDWT(double orgwidth, dobe dwtwdt,itNumoBand)if(Numofad=4)oneDWT(0, r, dwt);oneW(1, r, dt);i(umofBad=7)oeDDWT(2,g,d);neDWT(3, or, dt); void oneDDT(in fag, oubleorgth, due twdth)int ,

4、j;dobtmpeghwdt, temp1heighwidt;oblef_L = -0.15, 0.25, 0.7,0., -0.12 ;oe _H = 0.,1,-.5 ;f (flag = 0)/ertical directofr (i 0; i heit; i+)for (j = 0; j wdt;j+) (j= 0)tepi f_LPF0 orj +2 + f_LF1*orgi+ 1 + f_LPF2* orgi +f_PF3 * orgij+ 1 + f_LPF4* orgi + ;ls f (j =)tempi = _0 * ogij + f_PF1 * orgj - 1+ f_L

5、PF * rgj+ f_LPF3* orgi + fLPF4 *orgi 2;es if (j & j hi2)emij_P0 or- f_LP1 * orgj - 1+f_LPF2 *orj _LPF * org +1 fF4 *orgij + 2;es if (j = heiht-2)tempijf_L* orgij 2 +f_F * orgij - 1 + fPF2 ogi + fLPF3 * orj + 1 + fPF4 * rgij;else if ( = high-)tempi=fF0 * orij 2+ f_PF1 * rgj-1 + fLPF2 * orgi _LF3 orgi

6、j- 1+ LPF * ogij -2;fr (i ;i hight;+)or(j = 0; widt/2; j+)dtij = mpi * 2 1;for(i 0; i ei; i+)for (j=0; & heigh-1)tempij =f_H * gi - 1 f_HPFogij + f_PF2 *orgij +1;elef(j= heigh-1)tpij =f_HF0 rgi - 1 f_HPF1* orgij + f_HP2 * rij- 1;or (i = 0; egt; i+)or ( 0; idth/2; +)dwti + widt/2 = tpij * 2;f (fla 1)

7、/horiotalirctinor( 0;i hgt; i+)fo (j = ; j 1 & iwidt-2)tempij f_LPF0 ti - 2j + LPF *dwi - j +_PF2 * wtj + f_LPF3 * di+ 1j +f_PF * dwti +j;ese i (i = idth-2)mpj _LPF0 * dw- 2j fLPF1 * dwti - + f_LF2* tij+fLPF3* dwti +1j _LPF * tij;else f (i wth-1)teij = f_LPF * wti - 2j _LPF1 d - 1j+f_F2 * dj + _LF3

8、* dt- j + _LPF4 dti -2;fo(i = 0; iheight; i+)fo( =0; j widh;j+)tep1j= tepi 2 + 1j;or (i =0; i heigh; i+)fr(j = 0; 0 i idt-1)tempij =f_HPF0* dwti - j + _HPF1* dtij + _PF2 * dwti +1j;lse f(i=with-1)tempijf_HPF0 *dwti-j + fHF *dwtij+ HP2 *wi- j;for (;i height;+) f (j 0; jwidth/2; +)tempij+width/2 = tem

9、pi * 2j;or(i= 0; i 1 & eht-2)tempij f_LF * dwt - 2 + f_LF1 dwi - 1+ f_LPF2 *dt + f_ * dwti + j + f_PF4 * dwi 2j;lse (i = height2)tepij = f_P dwti- 2j + _PF1 dwti - j +f_L2* wti f_LPF3 dti + 1j + f_LP4 dwtj;s i ( = igh-1)temij = fF0 * wi 2 + f_P* dwi +_PF dtj+ f_LP3 * dti -1j f_P4 * wti 2;fo ( = 0; h

10、eigt;+)for (j = widh/; j 0 & iheigh-1)tempi = f_HPF0*dwti - 1j + f_HP * dwtj + f_HPF2 dwti+ 1j;l (i = heiht-1)temp = f_H *dti-1j +_ * ij HP2 *wt - j;r (i= ; i ight; i+)fo (j = wdh/2; widh; j+)te1i +higt/2 tpi * j;r ( 0; eight; +)or (0;j idth; j+) =temp1ij;if(flag =2)/ertalirecionor(i =; i hgh2; i+)o

11、r (= 0; j 1 &j eigh/2-)tj =_LPF0 orij 2 + f_F1 * orgij -1 + f_PF2orgij + f_LPF3 orgi 1+ f_PF *orgj + 2;elseif (j =eght/2-2)tempij f_LF* orgij 2 + fLF1*ogij - 1 + f_LF2* orgij _LF *ogij+1 + PF4 *orgj;eleif (j = height-1)tpi = _F0 *ogij - 2+f_LPF1 ri - 1 f2*orgij + f_P3 *ogij - 1 f_LF4*rgij ;for (i 0;

12、 i heigh/2; i+)or (j = ; j idt4;j+)d tpij*2 + 1;r ( = ; i heit2; i+)for (j 0; j 0 & j higt-1)empij =fHPF0 orij -1 _PF1 * ogij + f_HPF2 ogij + 1;le if (j= hight-1)tempij = f_HPF* orgi + f_PF1 * oij HPF2 * orgj - 1;for( =; i eigt/2; i+)fo (j 0; j width4; j+)wtij + width/4 = mpi *2;f (lag = 3)/horizona

13、l diretonfo (=0; i heigh/2; i+)for(j= 0; j width4; j)if(i = 0)tempij = f_LF0 * wti + 2j f_LPF1 dwt+1j +LPF2 * + f_LPF3 * dwti+1 fLPF4* wi + 2j;lei (i 1)tempij = f_PF0* dwtij + f_F1 * dwti -1j+f_LPF * dwtij+ fPF3*dwti+ 1j _LP4* dwti +2j;ese i (i 1&i eigh/2-2)tmpi = fPF0 * dwt - 2 +f_LPF dwti 1j + fLP

14、F2* dti + fP3 * dwi + 1j _PF4* wt + 2j;le if (i = hegt2-)tempj = fLPF dwi- 2j +_PF1wi - 1 + f_LP * dwij + _LP3* dwti +j +_LPF4 * dwi;elseif (i= height/2-1)temij = f_LF0* dwt 2 + f_LPF * di - 1j fLPF2*wtij + _LPF3 *t - 1j +fL4 *dwti -2j;fo (i ; i eit/4; i+)fr (= 0; jwidth/; j+)empij =temp *21j;for (=

15、; 0 & i heht/-)tempij _HPF0 * i - 1j + f_HF1 * dwtij f_P2 * dt + j;elseif(i = height-1)tempij f_HPF dti - 1j+ f_HPF1* dti+ fHPF2 wi - 1;fr (i =0;i eigh4; i+)for (j 0; j it/4;+)temp1i + hiht/4j = tempi 2j;for (i = 0; heih/2; i+)fr ( = idth/4;j widt/2; +)if (i = 0)tepij =LPF0 *dwti +2j f_LPF * dti +1j

16、 _LPF2 dtij +f_LPF3 wt 1j + f_LF4 dwti 2j;els f (i = 1)tei = _LPF dti + PF*dwti - 1j+ _LP2* dwij +f_LP* di + 1j +f_PF4 dti +2;elsef (i 1 & i higt-)teij =_LPF * dwt -j f_PF1 * wt - 1j + f_LPF2 dtj f_LPF3 * dwi + j + fLPF4 t+2j;else ( = heigh/2-2)eij _L0 *dwi - 2 f_PF1 * dti 1j+ _PF2* dwtj + _LP3*d +

17、1j + LF4*dwti;else f (i= heght/2-1)tempij = f_LPF0 *dwti 2j +fLPFdwt - 1j + f_LPF2* dti+ fLPF3 * ti - 1j + f_F4 * dwti -2j;for(i = 0;i heigt4; +)for (j = widt4; j width/; j+)em1j = tempi * 2+ j;for (i = 0; i heigh/2; i+)for(j =width4; j 0 & h/-)empij= fPF0 dwt - j+ f_HPF1 dtj + f_PF *dwt + j;eif ( =

18、 ith/)tempij f_HPF0 * dwt 1j + f_HP1*tij + fHP2 * dwti - 1j;r ( = 0; i heigt; i+)fo (j with/; jidt/2; j+)temp1i + iht4j = tmpi *2j; for (i= 0; i heigt/2;i+)or( =0; j idth2; j)dwtij= empij;voidtoDIDWT(uble wtwd, double recwdth,int NmoBad)if (Nuofad=7)oIDW(2, dwt, c);oneIDWT(3,dw,c);if (umofBnd=)oeDID

19、WT(, dt,rec);neDW(0, w, e);voidoneIDWT(int flag,doubldwtdth, double rcidt)int i, j;duble tempheightidth, tmp1heihtwth;due i_P = 05,1, 0. ;ouble i_HPF= -.1, -0.25, 0.75, -0.25, -0.15 ;f(lg = 2)/hrizntalirectionf (i = 0; i hegt/2;i+)for(j =; j width/; j)f(i % 2 = 1)tempijdti/ 2j;letepij 0;o (i= ; i he

20、ight/; i+)or (j = ; j 0 &i hgh/2-1)reci =iPF0 epi- ji_LPF1 * empij +_LPF ei + 1j;else (i=egt/2-)eij i_LPF0 epi j+i_P1 * emjiLPF2 * tmp- 1j;for(i = heit4;i eght; +)for(j = 0; j widh/4; j+)dwti- eigt/j= dti;fo (i = 0; i eght/2; i+)fr (j = 0; j dth4; +)if (i% = 0)tempi = wti / 2j;lstemi = 0;for( = 0; h

21、igh2;i+)fr (j = 0; & i eht2-2)temp1ij = _PF *temp - 2+ _HF1*tempi - 1j+ i_H *tmpij iP3 *tmp +1j + i_PF4* ti + 2j;ele f (i= hegh/2)emp1ij =HPF0* tmp j + _PF1* epi- ji_F2 * temij + i_H * em+1j_HF4 * tmpij;ese if (i = height/1)temp1j = i_HPF0 *tepi j i_HPF tempi- 1j + iHPF tempi +i_HPF3 epi - +i_HPF4 t

22、empi - j;r (i = ; height/2; +)fo (j= 0; j idth/; j+)rcij = rcjep1j;for (i 0; i ght/4; i+)for(j = width/; idh/;j+)wtij higt/ dwti;fo (i = 0; i hit/2; i+)r (j = ; j idth/; j+)if(i% 2 = 1)temij=wt / j;elsetempj = 0;r(i= ; i heigt/;i+)fo (=; j & heght/2-)tep1ij = i_LP0 * tp-1j +i_LPF1 * tempij i_LPF2* m

23、pi+ 1j;else if (i = eght/2-1)empj= i_F0 * empi -1 i_LPF1* empij + i_LF2 *tpi - 1;or (i=eight/4; eght/; i+)for (j= widt/; j width2;j+)dwti -heht/j- width/4 =dij;or(i =0; i ig2; )for( = 0; j widt/4; j)if(i % = )mpij t / 2j;elsetmpi = 0;for (i=0;i eigh/2; i+)fr(j0; j 1& i ih/2-2)wti= i_HF0 * tempi - 2j

24、 + i_HPF1 tempi - 1j iHPF2 *tempij + iHP3 * temi + 1j i_H4 * ep+;else f (i = heiht2-2)dwti = iF0* tp 2 + HPF1 * tempi - j + iF2 * tempi + i_HPF * tempi + 1j+ F4 temij;else i(i = heigh/2-1)dwij =_HF0 *temp -2 + i_HPF1* empi- 1j + i_HPF2 empij + _HPF3 temi i_HP4 * tmpi -j;for( 0; i eit/2; i+)or(j = 0;

25、j wih/4;j+)recij+with/ e1ij+dwtij;i (lag= )/verticalirectiofr( =0; i eight/2; i+)o (j = 0; j widt2; +)if(j % = 1)tempj reci /;elseempi 0;for( = 0; i height; +)o( =; j & eiht/-)tp1ij = i_PF0 * tempj - 1 + i_LPF1 * empij +_PF2 *epij +1;ese i (j=hht/2-1)tempij _LF0 * tempij - 1 +i_LPF1 tempij +i_LPF *

26、tempij 1;for (i 0;i eght/2; i+)or ( = widh/4;j width/; j+)ecij- wdth/ = recij;for (i 0;i hegt/2; i+)for (j =0; idh2; )i ( % 2 =)empj= recj / 2;eeempij = ;fr (i= 0; hight/2; i+)r (j = 0;j widh/2; +)i (j =0)recj= i_H0 *tepij + iHP * tepij+ 1 + iHF2 * teij i_HPF3 * tempij + 1iH4 * temp + 2;elsei (j = 1

27、)recij = i_HPF0 * tempij _PF1 tempi- + iHPF * tempij _3*temij+ 1 +i_HPF4 tpij2;else i ( 1 & jheight2-)reij i_HF eij +i_HP1 *tepij - 1 + i_PF2 * tmpij + iHPF3* tempi + + iHP4* tmj ;ele i ( heit/2-2)eci iHPF0* temij-2 F1* temij -1_HPF * tempj +_3 temij + 1 + _HF4 * tmpij;lseif (j = heiht/21)c = i_HP0

28、* tempij - iHPF1 epj- 1 + _HPF* temij + i_3 * tempi- 1 + _HPF* tepij - 2;fo(i = 0; ght/2; i+)for (j=0; width/2; j)rcj rcij + tmpi;i (la )/orizntal irectionfor(i = 0; i heght; i+)fo (j= 0; widh/;j+)if (i % = )tempj = di / 2j;lseempij = 0;r (i 0; 0 & i heiht-1)ecij _LPF0 * tmpi - 1 + _LPF *tempij + _LPF2 *temp+ j;es if (i = hei1)rci =i_LF0 * tmpi - j + iPF1

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!