小波变换C语言实现代码.docx
- 文档编号:8949622
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:24
- 大小:19.19KB
小波变换C语言实现代码.docx
《小波变换C语言实现代码.docx》由会员分享,可在线阅读,更多相关《小波变换C语言实现代码.docx(24页珍藏版)》请在冰豆网上搜索。
小波变换C语言实现代码
#include<>
#include<>
#defineheight256
#definewidth256
voidtwoDDWT(doubleorg[][width],doubledwt[][width],intNumofBand);voidoneDDWT(intflag,doubleorg[][width],doubledwt[][width]);
voidtwoDIDWT(doubledwt[][width],doublerec[][width],intNumofBand);voidoneDIDWT(intflag,doubledwt[][width],doublerec[][width]);
intmain()
{
inti,j;
doubleorg[height][width],dwt[height][width],rec[height][width];
FILE*lena;
FILE*lena3;
FILE*lena4;
lena=fopen("c:
\\","rb");
lena3=fopen("c:
\\","wb");
lena4=fopen("c:
\\","wb");
for(i=0;i { for(j=0;j { org[i][j]=fgetc(lena); } } twoDDWT(org,dwt,4); for(i=0;i { for(j=0;j { org[i][j]=dwt[i][j]; } } twoDDWT(org,dwt,7); for(i=0;i { for(j=0;j { fputc(dwt[i][j],lena3); } } twoDIDWT(dwt,rec,7); for(i=0;i { for(j=0;j { dwt[i][j]=rec[i][j]; } } twoDIDWT(dwt,rec,4); for(i=0;i { for(j=0;j { fputc(rec[i][j],lena4); } }return0; } voidtwoDDWT(doubleorg[][width],doubledwt[][width],intNumofBand) { if(NumofBand==4) { oneDDWT(0,org,dwt); oneDDWT(1,org,dwt); } if(NumofBand==7) { oneDDWT(2,org,dwt); oneDDWT(3,org,dwt); } } voidoneDDWT(intflag,doubleorg[][width],doubledwt[][width]) { inti,j; doubletemp[height][width],temp1[height][width]; doublef_LPF[]={,,,,}; doublef_HPF[]={,1,}; if(flag==0)//verticaldirection { for(i=0;i { for(j=0;j {if(j==0) temp[i][j]=f_LPF[0]*org[i][j+2]+f_LPF[1]*org[i][j+1]+f_LPF[2]*org[i][j]+f_LPF[3] *org[i][j+1]+f_LPF[4]*org[i][j+2]; elseif(j==1) temp[i][j]=f_LPF[0]*org[i][j]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j+2]; elseif(j>1&&j temp[i][j]=f_LPF[0]*org[i][j-2]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j+2]; elseif(j==height-2) temp[i][j]=f_LPF[0]*org[i][j-2]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j]; elseif(j==height-1) temp[i][j]=f_LPF[0]*org[i][j-2]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j-1]+f_LPF[4]*org[i][j-2]; } } for(i=0;i { for(j=0;j { dwt[i][j]=temp[i][j*2+1]; } } for(i=0;i { for(j=0;j {if(j==0)temp[i][j]=f_HPF[0]*org[i][j+1]+f_HPF[1]*org[i][j]+f_HPF[2]*org[i][j+1]; elseif(j>0&&j temp[i][j]=f_HPF[0]*org[i][j-1]+f_HPF[1]*org[i][j]+f_HPF[2]*org[i][j+1]; elseif(j==height-1)temp[i][j]=f_HPF[0]*org[i][j-1]+f_HPF[1]*org[i][j]+f_HPF[2]*org[i][j-1]; } } for(i=0;i { for(j=0;j { dwt[i][j+width/2]=temp[i][j*2]; } } } if(flag==1)//horizontaldirection { for(i=0;i { for(j=0;j { if(i==0)temp[i][j]=f_LPF[0]*dwt[i+2][j]+f_LPF[1]*dwt[i+1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i==1)temp[i][j]=f_LPF[0]*dwt[i][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i>1&&i *dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i==width-2)temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i][j]; elseif(i==width-1)temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i-1][j]+f_LPF[4]*dwt[i-2][j]; } } for(i=0;i {for(j=0;j temp1[i][j]=temp[i*2+1][j]; } } for(i=0;i {for(j=0;j if(i==0)temp[i][j]=f_HPF[0]*dwt[i+1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i+1][j]; elseif(i>0&&i elseif(i==width-1)temp[i][j]=f_HPF[0]*dwt[i-1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i-1][j]; } } for(i=0;i {for(j=0;j temp1[i][j+width/2]=temp[i*2][j]; } for(i=0;i { for(j=width/2;j {if(i==0)temp[i][j]=f_LPF[0]*dwt[i+2][j]+f_LPF[1]*dwt[i+1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i==1) temp[i][j]=f_LPF[0]*dwt[i][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i>1&&i elseif(i==height-2)temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3] *dwt[i+1][j]+f_LPF[4]*dwt[i][j]; elseif(i==height-1)temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3] *dwt[i-1][j]+f_LPF[4]*dwt[i-2][j]; } } for(i=0;i { for(j=width/2;j {temp1[i+height/2][j-width/2]=temp[i*2+1][j]; } } for(i=0;i { for(j=width/2;j {if(i==0)temp[i][j]=f_HPF[0]*dwt[i+1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i+1][j];elseif(i>0&&i temp[i][j]=f_HPF[0]*dwt[i-1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i-1][j]; } } for(i=0;i { for(j=width/2;j { temp1[i+height/2][j]=temp[i*2][j]; } } for(i=0;i { for(j=0;j { dwt[i][j]=temp1[i][j]; } } if(flag==2)//verticaldirection { for(i=0;i { for(j=0;j {if(j==0) temp[i][j]=f_LPF[0]*org[i][j+2]+f_LPF[1]*org[i][j+1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j+2]; elseif(j==1) temp[i][j]=f_LPF[0]*org[i][j]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j+2]; elseif(j>1&&j temp[i][j]=f_LPF[0]*org[i][j-2]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j+2]; elseif(j==height/2-2) temp[i][j]=f_LPF[0]*org[i][j-2]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j+1]+f_LPF[4]*org[i][j]; elseif(j==height/2-1) temp[i][j]=f_LPF[0]*org[i][j-2]+f_LPF[1]*org[i][j-1]+f_LPF[2]*org[i][j]+f_LPF[3]*org[i][j-1]+f_LPF[4]*org[i][j-2]; } } for(i=0;i { for(j=0;j {dwt[i][j]=temp[i][j*2+1]; } } for(i=0;i { for(j=0;j {if(j==0) temp[i][j]=f_HPF[0]*org[i][j+1]+f_HPF[1]*org[i][j]+f_HPF[2]*org[i][j+1];elseif(j>0&&j temp[i][j]=f_HPF[0]*org[i][j-1]+f_HPF[1]*org[i][j]+f_HPF[2]*org[i][j+1];elseif(j==height-1) temp[i][j]=f_HPF[0]*org[i][j-1]+f_HPF[1]*org[i][j]+f_HPF[2]*org[i][j-1]; } } for(i=0;i { for(j=0;j { dwt[i][j+width/4]=temp[i][j*2]; } } } if(flag==3)//horizontaldirection { for(i=0;i { for(j=0;j {if(i==0) temp[i][j]=f_LPF[0]*dwt[i+2][j]+f_LPF[1]*dwt[i+1][j]+f_LPF[2]*dwt[i][j]+ f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j];elseif(i==1) temp[i][j]=f_LPF[0]*dwt[i][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i>1&&i temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3] *dwt[i+1][j]+f_LPF[4]*dwt[i+2][j];elseif(i==height/2-2) temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i][j]; elseif(i==height/2-1) temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i-1][j]+f_LPF[4]*dwt[i-2][j]; } } for(i=0;i { for(j=0;j {temp1[i][j]=temp[i*2+1][j]; } } for(i=0;i { for(j=0;j {if(i==0)temp[i][j]=f_HPF[0]*dwt[i+1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i+1][j];elseif(i>0&&i temp[i][j]=f_HPF[0]*dwt[i-1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i+1][j];elseif(i==height/2-1) temp[i][j]=f_HPF[0]*dwt[i-1][j]+f_HPF[1]*dwt[i][j]+f_HPF[2]*dwt[i-1][j];} } for(i=0;i { for(j=0;j {temp1[i+height/4][j]=temp[i*2][j]; } } for(i=0;i { for(j=width/4;j {if(i==0)temp[i][j]=f_LPF[0]*dwt[i+2][j]+f_LPF[1]*dwt[i+1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i==1) temp[i][j]=f_LPF[0]*dwt[i][j]+f_LPF[1]*dwt[i-1][j]+f_LPF[2]*dwt[i][j]+f_LPF[3]*dwt[i+1][j]+f_LPF[4]*dwt[i+2][j]; elseif(i>1&&i temp[i][j]=f_LPF[0]*dwt[i-2][j]+f_LP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 变换 语言 实现 代码