没有合适的资源?快使用搜索试试~ 我知道了~
首页小波变换C语言实现代码
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10558422/bg1.jpg)
#include <stdio.h>
#include<math.h>
#define height 256
#define width 256
void twoDDWT(double org[][width], double dwt[][width],int NumofBand);
void oneDDWT(int flag, double org[][width], double dwt[][width]);
void twoDIDWT(double dwt[][width], double rec[][width],int NumofBand);
void oneDIDWT(int flag, double dwt[][width], double rec[][width]);
int main()
{
int i, j;
double org[height][width], dwt[height][width],rec[height][width];
FILE *lena;
FILE *lena3;
FILE *lena4;
lena = fopen("c:\lena.raw", "rb");
lena3 = fopen("c:\lena3.raw", "wb");
lena4 = fopen("c:\lena4.raw", "wb");
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
org[i][j] = fgetc(lena);
}
}
twoDDWT(org, dwt,4);
for (i = 0; i < height/2; i++)
{
for (j = 0; j < width/2; j++)
{
org[i][j]=dwt[i][j];
}
}
twoDDWT(org, dwt,7);
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
fputc(dwt[i][j], lena3);
}
}
twoDIDWT(dwt, rec,7);
![](https://csdnimg.cn/release/download_crawler_static/10558422/bg2.jpg)
for (i = 0; i < height/2; i++)
{
for (j = 0; j < width/2; j++)
{
dwt[i][j]=rec[i][j];
}
}
twoDIDWT(dwt, rec,4);
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
fputc(rec[i][j], lena4);
}
}
return 0;
}
void twoDDWT(double org[][width], double dwt[][width],int NumofBand)
{
if (NumofBand==4)
{
oneDDWT(0, org, dwt);
oneDDWT(1, org, dwt);
}
if (NumofBand==7)
{
oneDDWT(2, org, dwt);
oneDDWT(3, org, dwt);
}
}
void oneDDWT(int flag, double org[][width], double dwt[][width])
{
int i, j;
double temp[height][width], temp1[height][width];
double f_LPF[] = { -0.125, 0.25, 0.75, 0.25, -0.125 };
double f_HPF[] = { -0.5, 1, -0.5 };
if (flag == 0)//vertical direction
{
for (i = 0; i < height; i++)
{
for (j = 0; j < width; 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];
else if (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];
else if (j > 1 && 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 + 2];
![](https://csdnimg.cn/release/download_crawler_static/10558422/bg3.jpg)
else if (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];
else if (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 < height; i++)
{
for (j = 0; j < width/2; j++)
{
dwt[i][j] = temp[i][j * 2 + 1];
}
}
for (i = 0; i < height; i++)
{
for (j = 0; j < width; 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];
else if (j > 0 && 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];
else if (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 < height; i++)
{
for (j = 0; j < width/2; j++)
{
dwt[i][j + width/2] = temp[i][j * 2];
}
}
}
if (flag == 1)//horizontal direction
{
for (i = 0; i < height; i++)
{
for (j = 0; 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];
else if (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];
else if (i > 1 && 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 + 2][j];
else if (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];
else if (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];
![](https://csdnimg.cn/release/download_crawler_static/10558422/bg4.jpg)
}
}
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
temp1[i][j] = temp[i * 2 + 1][j];
}
}
for (i = 0; i < height; i++)
{
for (j = 0; 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];
else if (i > 0 && 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];
else if (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 < height; i++)
{
for (j = 0; j < width/2; j++)
{
temp1[i][j+width/2] = temp[i * 2][j];
}
}
for (i = 0; i < height; i++)
{
for (j = width/2; j < width; 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];
else if (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];
else if (i > 1 && 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 + 2][j];
else if (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];
else if (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 < height; i++)
{
for (j = width/2; j < width; j++)
{
temp1[i+height/2][j-width/2] = temp[i * 2 + 1][j];
剩余15页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/fd38b7500909467f84176152a8f44a15_qq_27033625.jpg!1)
超级大老鼠
- 粉丝: 3
- 资源: 8
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 基于单片机的瓦斯监控系统硬件设计.doc
- 基于单片机的流量检测系统的设计_机电一体化毕业设计.doc
- 基于单片机的继电器设计.doc
- 基于单片机的湿度计设计.doc
- 基于单片机的流量控制系统设计.doc
- 基于单片机的火灾自动报警系统毕业设计.docx
- 基于单片机的铁路道口报警系统设计毕业设计.doc
- 基于单片机的铁路道口报警研究与设计.doc
- 基于单片机的流水灯设计.doc
- 基于单片机的时钟系统设计.doc
- 基于单片机的录音器的设计.doc
- 基于单片机的万能铣床设计设计.doc
- 基于单片机的简易安防声光报警器设计.doc
- 基于单片机的脉搏测量器设计.doc
- 基于单片机的家用防盗报警系统设计.doc
- 基于单片机的简易电子钟设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)