⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tswavtest.c

📁 将提升小波用于目标跟踪。 小波提升的核心就是更新算法和预测算法,通过预测算法可以得到高频信息,而通过更新算子可以得到正确的低频信息.提升样式可以实现原位计算和整数提升,并且变换的中间结果是交织排列的
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>


#ifdef __cplusplus
extern "C" {
#endif
	
	
#define M_PI  3.1415926535897932384626433832795
#define M_SQRT2  1.41421356237309504880168872420969808
#define M_SQRT3  1.73205080756887729352745
    void LWTrans( double *pData   , int nDataLength , 
        double *pWeight , int nWeightLength ,
        double *pBuff , int nLayer);
    void ILWTrans( double *pData   , int nDataLength , 
        double *pWeight , int nWeightLength ,
        double *pBuff , int nLayer);
    void LWDenoise( double *pData   , int nDataLength , 
        int nLayer);

//Harr小波 
double g_dfLiftHarr[]={
    -1.0 ,  0.0 , 0.50 , 0.0 , 1/M_SQRT2 
};

//5-3 小波 
double g_dfLift53[]={
    -0.5 , -0.5 , 0.25 , 0.25 , M_SQRT2 
};

//9-7 小波 
double g_dfLift97[]={
    -0.5 , -0.5 , 0.25 , 0.25, M_SQRT2 
};

//D4小波   
double g_dfLiftDB4[]={
    M_SQRT3, 0 , -M_SQRT3/4 , -(M_SQRT3-2)/4 , 0 , -1 , 0 , 0 , M_SQRT2/(M_SQRT3+1)
};

#define NUM 32

void LWDenoiseTest( char *szFilename )
{
    FILE *fp;
    int  k, num;
    double dfData[256];
    double dfBuff[256];
    double dfPoss[256];

    fp=fopen(szFilename,"rt");
    if( fp==NULL )
    {
        printf("Cant open file of %s \n", szFilename);
        return;
    }
    
    num=0;
    while( !feof(fp) )
    {
        fscanf(fp, "%lf\n", &dfData[num]);
        dfPoss[num]=dfData[num];
        num++;
    }
    fclose( fp );

    k=NUM-1;
    memcpy( dfData , dfPoss+k-(NUM-1), NUM*sizeof(double));
    while( k<num-NUM )
    {
        dfData[NUM-1]=dfPoss[k];
        LWTrans(dfData , NUM , g_dfLiftHarr , sizeof( g_dfLiftHarr)/sizeof(double)/4 , 
            dfBuff, 3);
        LWDenoise( dfData , NUM , 3);
        ILWTrans(dfData , NUM , g_dfLiftHarr , sizeof( g_dfLiftHarr)/sizeof(double)/4 , 
            dfBuff, 3);

//        for( i=0; i<NUM; i++ )
//        {
//            printf("%4d %10.3f %10.6f\n", i+1,
//            dfPoss[i], 
//            dfData[i]);
//        }

        k++;
        printf("%4d %10.3f %10.6f %10.5f %10.5f\n", k-1 ,
                dfPoss[k], dfData[0] ,dfData[NUM/2] ,dfData[NUM-1] );
        memcpy( dfData , dfData+1, NUM*sizeof(double));  
//        for( i=0; i<NUM-1; i++)
//            dfData[i]=dfPoss[k-NUM+1];
    }
}

void main( void )
{
    // LWDenoiseTest("E:\\数据融合\\waveletCpp\\BLHght.dat");
	
    LWDenoiseTest("D:\\myJob\\wavelet\\waveletCPP\\BLHght.dat");
}

#ifdef __cplusplus
}
#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -