📄 bdaretrieval.cpp
字号:
// BDAretrieval.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "BDAretrieval.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
int allclassobjectmembers[MAXCLASSNUM][MAXOBJECTNUM];
int numofoneclass[MAXCLASSNUM];
double originfeaturesmatrix[OBJECTNUMBER][FEATHERLENTH];
double distancetrans[OBJECTNUMBER];
int positiveobjects[OBJECTNUMBER];
int negativeobjects[OBJECTNUMBER];
int pandnobjects[OBJECTNUMBER];
int pandnnum;
int positivenum;
int negativenum;
int round;
int nearestobjects[RETURNBACKNUM];
double mx[FEATHERLENTH];
double tempfeature[FEATHERLENTH];
double tempmatrix[FEATHERLENTH][FEATHERLENTH];
double Sb[FEATHERLENTH][FEATHERLENTH];
double Sw[FEATHERLENTH][FEATHERLENTH];
double tempsb[FEATHERLENTH*FEATHERLENTH];
double tempsw[FEATHERLENTH*FEATHERLENTH];
//double temptrans[MAXCLASSNUM*FEATHERLENTH];
//double trans[MAXCLASSNUM][FEATHERLENTH];
double ** trans;
double * transcut;
//搞一个动态长度,然后传参过去,把剪枝的个数留下来
double newfeaturesmatrix[OBJECTNUMBER][FEATHERLENTH];
//double ** newfeaturesmatrix;
// 唯一的应用程序对象
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// 初始化 MFC 并在失败时显示错误
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 更改错误代码以符合您的需要
_tprintf(_T("致命错误: MFC 初始化失败\n"));
nRetCode = 1;
}
else
{
// TODO: 在此处为应用程序的行为编写代码。
CProcessControl processcontrolobject;
processcontrolobject.readalllabelsfromfile("train.txt");
processcontrolobject.readallfeaturesfromfile("featuresinfile.txt");
CMatrixCompute matrixcomputeobject;
cout<<"Load Complete!"<<endl;
int classnum = 0,objectpos = 0;
for (classnum=0;classnum<MAXCLASSNUM;classnum++)//对所有类遍历
{
for (objectpos=0;objectpos<numofoneclass[classnum];objectpos++)//对类中模型遍历
{
processcontrolobject.firstcomputedistance(allclassobjectmembers[classnum][objectpos]);
pandnnum = 0;
positivenum = 0;
negativenum = 0;
for (round=0;round< ROUNDNUM ;round++)//反复反馈
{
processcontrolobject.labelretrieval(classnum);
matrixcomputeobject.computemx();
matrixcomputeobject.computesb();
matrixcomputeobject.computesw();
matrixcomputeobject.computetransformmatrix();
processcontrolobject.computenewfeaturematrix();
processcontrolobject.newcomputedistance(allclassobjectmembers[classnum][objectpos]);
}
cout<<allclassobjectmembers[classnum][objectpos]<<endl;
}
}
}
return nRetCode;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -