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

📄 vdtwrecoge.h

📁 本程序中列举了数字图象模式识别领域中的常用程序,可以在其基础上进行图象处理.
💻 H
字号:
/***vdtwrecoge.h*********************************************************************/
#ifndef vdtwrecoge_h
#define vdtwrecoge_h

#include<stdio.h>
#include<math.h>

#define DTWMAXNUM 2000
#define MAX(a,b) ((a)>(b)?(a):(b))
#define MIN(a,b) ((a)<(b)?(a):(b))
#define ABS(a) ((a)>0?(a):(-(a)))
#define DTWVERYBIG 100000000.0
#define MAX_DIM 8

struct VECTOR
{
	int num;	//向量的维数
	double  data[MAX_DIM];
};

typedef struct VECTOR  mvector;
typedef struct VECTOR* pmvector;

/*****************************************************************************/
/*VectorMul(mvector *A,double mul) 向量数乘
/* 
/*****************************************************************************/
void VectorMul(mvector *A,double mul);


/*****************************************************************************/
/*VectorInit(mvector *A,int dim) 向量初始化
/* dim 维数
/******************************************************************************/

void VectorInit(mvector *A,int dim);

/*****************************************************************************/
/* VectorAdd(mvector *A,mvector *B,mvector *C)
/* 向量加法,结果存放在C中
/*****************************************************************************/
void VectorAdd(mvector *A,mvector *B,mvector *C);
/*****************************************************************************/
/* VectorDistance,用于求两个向量之间的距离,欧氏距离
/* A和B是待求距离的两个向量
/*****************************************************************************/
double VectorDistance(mvector *A,mvector *B);

/*****************************************************************************/
/* DTWDistance,求两个数组之间的匹配距离
/* A,B分别为第一第二个数组,I,J为其数组长度,r为匹配窗口的大小
/* r的大小一般取为数组长度的1/10到1/30
/* 返回两个数组之间的匹配距离,如果返回-1.0,表明数组长度太大了
/*****************************************************************************/
double VDTWDistanceFun(mvector *A,int I,mvector *B,int J,int r);

/*****************************************************************************/
/* DTWTemplate,进行建立模板的工作
/* 其中A为已经建立好的模板,我们在以后加入训练样本的时候,
/* 以已建立好的模板作为第一个参数,I为模板的长度,在这个模板中不再改变
/* B为新加入的训练样本,J为B的长度,turn为训练的次数,在第一次
/* 用两个数组建立模板时,r为1,这是出于权值的考虑
/* temp保存匹配最新训练后的模板,建议temp[DTWMAXNUM],函数返回最新训练后模板的长度
/* 如果函数返回-1,表明训练样本之间距离过大,需要重新选择训练样本,
/* tt为样本之间距离的阈值,自行定义
/*****************************************************************************/
int VDTWTemplate(mvector *A,int I,mvector *B,int J,mvector *temp,int turn,double tt,double *rltdistance);

#endif

⌨️ 快捷键说明

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