recognition.cpp

来自「数字识别」· C++ 代码 · 共 116 行

CPP
116
字号
// Recognition.cpp: implementation of the CRecognition class.
// 
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "数字识别.h"
#include "Recognition.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CRecognition::CRecognition(){
	int i = 0;
	char fn[] = "data/n1.dat";
	for(i = 0;i < 10; i++){
		fn[6] = (char)((int)('0') + i);
		node[i] = new CNode(fn);
	}
}

CRecognition::~CRecognition(){
	int i = 0;
	for(i = 0;i < 10; i++){
		delete node[i];
	}
}

void CRecognition::Save(){
	int i = 0;
	for(i = 0;i < 10; i++){
		node[i]->Save();
	}
}

void CRecognition::Study(int * input, int * rs){ // 学习函数
	int i = 0;
	for(i = 0;i < 10; i++){
		node[i]->Study(input, rs[i]);
	}
}

int CRecognition::Get(int * input){
	int r = 0;
	int i = 0;
	for(i = 9;i >= 0; i--){
		r += r + node[i]->GetResult(input);
	}
	switch(r){
	case 1:
	case 2:
		return 1;
	case 20:
	case 21:
	case 532:
	case 533:
	case 529:
		return 2;
	case 36:
	case 548:
	case 545:
		return 3;
	case 10:
	case 9:
		return 4;
	case 552:
		return 5;
	case 65:
	case 72:
	case 73:
	case 97:
	case 104:
	case 105:
	case 616:
	case 584:
		return 6;
	case 513:
	case 5:
	case 517:
		return 7;
	case 192:
	case 76:
	case 204:
	case 264:
	case 288:
		return 8;
	case 129:
	case 13:
	case 44:
	case 45:
	case 133:
	case 137:
	case 141:
	case 160:
	case 164:
	case 168:
	case 172:
		return 9;
	case 256:
	case 64:
	case 128:
	case 257:
	case 258:
	case 768:
	case 769:
	case 770:
		return 0;
	}
	return -1;
}

⌨️ 快捷键说明

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