资源简介
手写签名采集识别系统,可以采集签名,并进行签名识别,使用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变频恒压供水
- 下一篇:哈工大考研通信复试面试问题汇总
相关资源
- NotifyIcon
- GPS NMEA协议解析.NET库
- tensorflow实现猫狗识别
- 聚类识别源代码
- 国密算法SM2公私钥加解密及签名验签
- GPS广播星历计算卫星概略位置
- DevExpressCrack-master.zip
- 基于图像匹配技术的飞机识别
- 打包管理工具 Asset Bundle Manager
- 基于图像识别的候梯人数检测系统
- ClamAV病毒签名方法大全
- Unity下调用摄像头识别二维码
- 脱机手写签名识别-要求与源码
- 朴素贝叶斯分类器-人脸识别方面的
- Loic源码-DDOS/DOS测试
- V0.7 08XE基本识别程序(口令模式)
- tracerout:路由识别
- KNN识别LED数码管
- 空间后方交会求外方位元素
- 车牌的字符分割和字符识别的研究与
- 交通标志识别OpenCV源代码
- 基于OpenCV的摄像头动态手势轨迹识别
- 基于图像处理的焊点缺陷识别方法的
- 手写签名图片,可保存为图片或到数
- WinRemoteDesktop 简易远程桌面管理工具
- 自动取款机管理系统
- 实现一个界面跳转到另一个界面
- 人行为识别代码,需要的过来看看,
- PC与三菱FX系列PLC串口通讯库和exampl
- framwork赛马程序
评论
共有 条评论