资源简介
手写签名采集识别系统,可以采集签名,并进行签名识别,使用DTW算法

代码片段和文件信息
// SignMatch.cpp : Defines the entry point for the DLL application.
//
#include
#include “struct.h“
#include “SignData.h“
using namespace std;
#ifndef LIB_H
#define LIB_H
//extern “C“ int __declspec(dllexport)add(int x int y);
//extern “C“ MATCHDIS __declspec(dllexport)MatchDTW(CSignData &data1CSignData &data2int nType);
extern “C“ MATCHDIS __declspec(dllexport)MatchDTW(string str1string str2int nTypeint n);
//extern “C“ void __declspec(dllexport)MatchByFile(char * str1char * str2MATCHDIS& sc );
//extern “C“ void __declspec(dllexport)MatchByFile(string str1string str2MATCHDIS & sc );
#endif
#define DTWMAXNUM 2000
#define MAX(ab) ((a)>(b)?(a):(b))
#define MIN(ab) ((a)<(b)?(a):(b))
#define ABS(a) ((a)>0?(a):(-(a)))
#define DTWVERYBIG 100000000.0
double distance1[DTWMAXNUM][DTWMAXNUM]; /*保存距离*/
double dtwpath[DTWMAXNUM][DTWMAXNUM]; /*保存路径*/
//计算单一方向距离
double DTWDistanceFun(double *Aint Idouble *Bint Jint r)
{
int ij;
double dist;
int istartimax;
int r2=r+ABS(I-J);/*匹配距离*/
double g1g2g3;
int pathsig=1;/*路径的标志*/
/*检查参数的有效性*/
if(I>DTWMAXNUM||J>DTWMAXNUM){
//printf(“Too big number\n“);
return -1.0;
}
/*进行一些必要的初始化*/
for(i=0;i for(j=0;j dtwpath[i][j]=0;
distance1[i][j]=DTWVERYBIG;
}
}
/*动态规划求最小距离*/
/*这里我采用的路径是 -------
. |
. |
. |
. |
*/
distance1[0][0]=(double)2*ABS(A[0]-B[0]);
for(i=1;i<=r2;i++){
distance1[i][0]=distance1[i-1][0]+ABS(A[i]-B[0]);
}
for(j=1;j<=r2;j++){
distance1[0][j]=distance1[0][j-1]+ABS(A[0]-B[j]);
}
for(j=1;j istart=j-r2;
if(j<=r2)
istart=1;
imax=j+r2;
if(imax>=I)
imax=I-1;
for(i=istart;i<=imax;i++){
g1=distance1[i-1][j]+ABS(A[i]-B[j]);
g2=distance1[i-1][j-1]+2*ABS(A[i]-B[j]);
g3=distance1[i][j-1]+ABS(A[i]-B[j]);
g2=MIN(g1g2);
g3=MIN(g2g3);
distance1[i][j]=g3;
}
}
dist=distance1[I-1][J-1]*10/((double)(I+J));
return dist;
}
//整体距离
double GetMin(double **dint n int m){ //DTW中通过d得到g
double **g = new double*[n];
double min=0getmin;
for(int i=0;i g[i]=new double[m];
for(int j=0;j if(i==0||j==0){
if(i==0&&j==0){
g[i][j]=2*d[i][j];
}
if(i==0&&j!=0){
g[i][j]=d[i][j]+g[i][j-1];
}
if(i!=0&&j==0){
g[i][j]=d[i][j]+g[i-1][j];
}
// System.out.println(“g[“+i+“]“+“[“+j+“]=“+g[i][j]);
}else{
if((g[i][j-1]+d[i][j])<(g[i-1][j-1]+2*d[i][j])){
min=g[i][j-1]+d[i][j];
}else{
min=g[i-1][j-1]+2*d[i][j];
}
if(min<(g[i-1][j]+d[i][j])){
g[i][j]=min;
// System.out.println(“g[“+i+“]“+“[“+j+“]=“+g[i][j]);
}else{
g[i][j]=g[i-1][j]+d[i][j];
// System.out.println(“g[“+i+“]“+“[“+j+“]=“+g[i][j]);
}
}
}
}
// loop+=strokeSum[k];
// }
getmin=(g[n-1][m-1])/(n+m);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14464 2014-01-13 15:08 MatchDTW\Debug\BuildLog.htm
文件 2486 2014-04-14 20:38 MatchDTW\Debug\MatchDTW.Build.CppClean.log
文件 441 2014-04-14 20:38 MatchDTW\Debug\MatchDTW.log
文件 4647 2014-04-14 19:48 MatchDTW\MatchDtw.cpp
文件 4332 2014-01-13 15:08 MatchDTW\MatchDTW.vcproj
文件 1401 2014-01-13 15:24 MatchDTW\MatchDTW.vcproj.PC-201210172121.Administrator.user
文件 5480 2014-02-17 16:39 MatchDTW\MatchDTW.vcxproj
文件 1412 2014-02-17 16:39 MatchDTW\MatchDTW.vcxproj.filters
文件 143 2014-02-17 16:39 MatchDTW\MatchDTW.vcxproj.user
文件 2358 2014-04-03 15:50 MatchDTW\Release\cl.command.1.tlog
文件 26456 2014-04-03 15:50 MatchDTW\Release\CL.read.1.tlog
文件 1608 2014-04-03 15:50 MatchDTW\Release\CL.write.1.tlog
文件 1826 2014-04-03 15:50 MatchDTW\Release\li
文件 3102 2014-04-03 15:50 MatchDTW\Release\li
文件 896 2014-04-03 15:50 MatchDTW\Release\li
文件 1422 2014-04-03 15:50 MatchDTW\Release\MatchDTW.Build.CppClean.log
文件 381 2014-04-03 15:50 MatchDTW\Release\MatchDTW.dll.intermediate.manifest
文件 77 2014-04-03 15:50 MatchDTW\Release\MatchDTW.lastbuildstate
文件 2795 2014-04-03 15:50 MatchDTW\Release\MatchDTW.log
文件 673886 2014-04-03 15:50 MatchDTW\Release\MatchDtw.obj
文件 349 2014-04-03 15:50 MatchDTW\Release\MatchDTW.write.1.tlog
文件 514 2014-04-03 15:50 MatchDTW\Release\mt.command.1.tlog
文件 792 2014-04-03 15:50 MatchDTW\Release\mt.read.1.tlog
文件 332 2014-04-03 15:50 MatchDTW\Release\mt.write.1.tlog
文件 1025338 2014-04-03 15:50 MatchDTW\Release\SignData.obj
文件 30899 2014-04-03 15:50 MatchDTW\Release\StdAfx.obj
文件 290816 2014-04-03 15:50 MatchDTW\Release\vc100.pdb
文件 47330 2014-03-01 19:49 MatchDTW\SignData.cpp
文件 3117 2014-01-13 14:09 MatchDTW\SignData.h
文件 296 2013-08-26 14:16 MatchDTW\StdAfx.cpp
............此处省略8个文件信息
- 上一篇:s7-300变频恒压供水
- 下一篇:哈工大考研通信复试面试问题汇总
相关资源
- 语音信号处理 赵力
- WPF USB 网络 串口 通信软件
- B/S 网上订餐系统
- 教室管理系统.rar
- [免费]图像识别c 源码
- 小鸡快跑游戏.
- 一个人脸识别程序源码
-
分别适用于.NET fr
amework 2.0和4.0的E - 汽车租赁系统............................
- 基于bp神经网络的表情识别
- 支持向量机的船舶目标识别
- 基于OpenCV的数字识别468815
- 德卡D8读写器关于读写感应卡的一些代
- halcon 测量助手
- LDA 人脸识别
- 图片存储到数据库保存二进制文件并
- 血液图像处理—细胞识别
- 编译词法分析器识别关键字常数和符
- 用Socket写的简易FTP服务器和客户端
- 企业销售管理信息系统(全套)
- 串口操作类(justinio)
- 基于Petri网的工作流(完整的原创源代
- 选择题自动考试系统
- 多线程实例:桌面智能弹球小游戏
- DSP 语音识别程序 DTW MFCC
- II型逆向跷跷板机制及其在LHC和ILC的签
- halcon简单实现人脸识别.hdev
- scratch -教学案例 识别物品颜色.sb3
- OCR识别字符
- halcon-ocr训练及识别
评论
共有 条评论