📄 load.cpp
字号:
Msg(+1, str_PROJECT_TRAINING);
break;
case FS2_PROCESSING:
ret = GetTrainingDB()->AddFace(fs->data);
if (ret < 0)
return ret;
break;
case FS2_END:
int leigen = -1;
if (fs->args[0] != 0) /*process the optional argument*/
{ /*There are some option(s)*/
if (isalnum((fs->args)[0]) != 0)
{ /*The first option is a number, it is the number of eigenvectors*/
leigen = atol(fs->args);
}
}
Msg(-1, str_PROJECT_TRAINING_DONE, GetTrainingDB()->GetNumFace());
ret = Build(leigen);
if (ret < 0)
return ret;
bCommand[CMD_TRAINING] = TRUE;
break;
}
return 0;
case FSS_RECONS:
switch (fs->state2)
{
case FS2_BEGIN:
if (IsCommand(CMD_LOAD_EIGEN) == FALSE && IsCommand(CMD_TRAINING) == FALSE)
{
Msg(0, str_NOTYET_EIGEN, fs->num_line);
return -1;
}
Msg(1, str_PROJECT_RECONSTRUCTION);
break;
case FS2_PROCESSING:
ret = GetReconstructionDB()->AddFace(fs->data);
if (ret < 0)
return ret;
break;
case FS2_END:
Msg(-1, str_PROJECT_RECONSTRUCTION_DONE, GetReconstructionDB()->GetNumFace());
ret = Reconstruct();
if (ret < 0)
return ret;
bCommand[CMD_RECONSTRUCTION] = TRUE;
break;
}
return 0;
case FSS_RECOG:
switch (fs->state2)
{
case FS2_BEGIN:
if (IsCommand(CMD_LOAD_EIGEN) == FALSE && IsCommand(CMD_TRAINING) == FALSE)
{
Msg(0, str_NOTYET_EIGEN, fs->num_line);
return -1;
}
if (IsCommand(CMD_TRAINING) == FALSE && IsCommand(CMD_MEET) == FALSE)
{
Msg(0, str_NOTYET_MEET);
return -1;
}
Msg(1, str_PROJECT_RECOGNIZE);
break;
case FS2_PROCESSING:
ret = GetRecognitionDB()->AddFace(fs->data);
if (ret < 0)
return ret;
break;
case FS2_END:
/* look at the first option which is the number of electors */
int nVar = 1;
BOOL bRecons = FALSE;
char *str_option = fs->args;
while (str_option[0] != 0 && isalnum(str_option[0]) == 0)
str_option++;
if (str_option[0] != 0)
{ /*There are some option(s)*/
if (isalnum(str_option[0]) != 0)
{ /*The first option is a number, it is the number of eigenvectors*/
nVar = atol(str_option);
if (nVar == 0 && str_option[0] == 'R')
{
bRecons = TRUE;
nVar = 1;
}
while (str_option[0] != 0 && isalnum(str_option[0]) == 0)
str_option++;
if (str_option[0] != 'R')
bRecons = TRUE;
}
}
Msg(-1, str_PROJECT_RECOGNIZE_DONE, GetRecognitionDB()->GetNumFace());
ret = Recognize(nVar, bRecons);
if (ret < 0)
return ret;
bCommand[CMD_RECOGNIZE] = TRUE;
break;
}
return 0;
case FSS_MEET:
switch (fs->state2)
{
case FS2_BEGIN:
if (IsCommand(CMD_LOAD_EIGEN) == FALSE && (CMD_TRAINING) == FALSE)
{
Msg(0, str_NOTYET_EIGEN, fs->num_line);
return -1;
}
Msg(1, str_PROJECT_MEET);
break;
case FS2_PROCESSING:
ret = GetMetDB()->AddFace(fs->data);
if (ret < 0)
return ret;
break;
case FS2_END:
Msg(-1, str_PROJECT_MEET_DONE, GetMetDB()->GetNumFace());
bCommand[CMD_MEET] = TRUE;
break;
}
return 0;
case FSC_LEIGEN:
if (IsCommand(CMD_TRAINING) == TRUE)
{
Msg(0, str_ALREADY_TRAINING, fs->num_line);
return -1;
}
Msg(1, str_PROJECT_LOAD_EIGEN);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
strcpy(EValName, fs->args); /*Create the eigenvalue file name*/
strcat(EValName, str_EVAL_FILENAME);
strcat(EValName, str_EXT_TXT);
strcpy(EVectName, fs->args); /*Append the extension to the eigenvector file name*/
strcat(EVectName, str_EXT_TXT);
ret = GetEigenMat()->Load(EVectName);
if (ret < 0)
return -1;
ret = GetEigenVal()->Load(EValName);
if (ret < 0)
return -1;
lRow = pEVect->GetLi();;
lCol = pEVect->GetCol();
lEigen = lCol;
GetEigenDB()->Copy(GetEigenMat(), GetEigenVal());
Msg(-1, str_PROJECT_LOAD_EIGEN_DONE, GetEigenDB()->GetNumFace());
bCommand[CMD_LOAD_EIGEN] = TRUE;
return 0;
case FSC_LMEET:
if (IsCommand(CMD_MEET) == TRUE)
{
Msg(0, "Inconcistency, you have already defined a MEET section and you put : %s !!!", fs->num_line);
return -1;
}
Msg(1, "Load Meeting faces");
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
ret = GetMetMat()->Load(fs->args);
if (ret < 0)
break;
//GetMetDB()->Copy(GetMetMat(), NULL);
Msg(-1, "%ld Meeting faces loaded", GetEigenDB()->GetNumFace());
//bCommand[CMD_LOAD_MEET] = TRUE;
return 0;
case FSC_SEIGENDB:
if (GetEigenDB() == NULL)
{
Msg(0, str_NOTYET_EIGEN);
return -1;
}
Msg(1, str_PROJECT_SAVE_EIGEN_DB);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
strcpy(EVectName, fs->args); /*Append the extension to the eigenvector file name*/
ret = GetEigenDB()->Save(EVectName);
if (ret < 0)
return ret;
Msg(-1, str_PROJECT_SAVE_EIGEN_DB_DONE, GetEigenDB()->GetNumFace());
bCommand[CMD_SAVE_EIGEN_DB] = TRUE;
return 0;
case FSC_SEIGEN:
if (GetEigenMat() == NULL || GetEigenVal() == NULL)
{
Msg(0, str_NOTYET_EIGEN);
break;
}
Msg(1, str_PROJECT_SAVE_EIGEN);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
strcpy(EVectName, fs->args); /*Append the extension to the eigenvector file name*/
strcpy(EValName, fs->args); /*Create the eigenvalue file name*/
strcat(EValName, str_EVAL_FILENAME);
strcat(EValName, str_EXT_TXT);
strcpy(EVectName, fs->args); /*Append the extension to the eigenvector file name*/
strcat(EVectName, str_EXT_TXT);
ret = GetEigenMat()->Save(EVectName);
if (ret < 0)
return ret;
ret = GetEigenVal()->Save(EValName);
if (ret < 0)
return ret;
Msg(-1, str_PROJECT_SAVE_EIGEN_DONE, GetEigenDB()->GetNumFace());
bCommand[CMD_SAVE_EIGEN] = TRUE;
return 0;
case FSC_SCMP_MEET:
if (GetMeetCmp() == NULL)
{
Msg(0, str_NOTYET_MEET);
break;
}
Msg(1, str_PROJECT_SAVE_CMP_MEET);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
ret = GetMeetCmp()->Save(fs->args);
if (ret < 0)
return ret;
Msg(-1, str_PROJECT_SAVE_CMP_MEET_DONE, GetMeetCmp()->GetCol());
bCommand[CMD_SAVE_CMP_MEET] = TRUE;
return 0;
case FSC_SCMP_RECONS:
if (GetReconstructionCmp() == NULL)
{
Msg(0, str_NOTYET_RECONSTRUCTION, fs->num_line);
break;
}
Msg(1, str_PROJECT_SAVE_CMP_RECONSTRUCTION);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
ret = GetReconstructionCmp()->Save(fs->args);
if (ret < 0)
return ret;
Msg(-1, str_PROJECT_SAVE_CMP_RECONSTRUCTION_DONE, GetReconstructionCmp()->GetCol());
bCommand[CMD_SAVE_CMP_RECONSTRUCTION] = TRUE;
return 0;
case FSC_SCMP_RECOG:
if (GetRecognitionCmp() == NULL)
{
Msg(0, str_NOTYET_RECOGNITION, fs->num_line);
break;
}
Msg(1, str_PROJECT_SAVE_CMP_RECOGNITION);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
ret = GetRecognitionCmp()->Save(fs->args);
if (ret < 0)
return ret;
Msg(-1, str_PROJECT_SAVE_CMP_RECOGNITION_DONE, GetRecognitionCmp()->GetCol());
bCommand[CMD_SAVE_CMP_RECOGNITION] = TRUE;
return 0;
case FSC_SREPORT:
Msg(1, str_PROJECT_SAVE_REPORT);
if (fs->args[0] == 0)
{
Msg(-1, str_ERR_WRONGARG, fs->num_line);
return -1;
}
SaveReport(fs->args);
Msg(-1, str_PROJECT_SAVE_REPORT_DONE);
bCommand[CMD_SAVE_REPORT] = TRUE;
return 0;
}
/*Undefined line*/
Msg(0, str_ERR_MISMATCH, fs->num_line);
return -1;
}
PFILECMD AppendCmd(PFILESTATE fs)
{
PFILECMD pnext = fs->pnext;
PFILECMD pprev = NULL;
while (pnext != NULL)
{
pprev = pnext;
pnext = pnext->pnext;
}
pnext = (PFILECMD)_fmalloc(sizeof(FILECMD));
if (pnext == NULL)
return NULL;
if (pprev == NULL)
/*fs->pnext = pnext*/;
else
pprev->pnext = pnext;
pnext->pnext = NULL;
return pnext;
}
void FreeCmd(PFILESTATE fs)
{
PFILECMD pnext2, pnext = fs->pnext;
while (pnext != NULL)
{
pnext2 = pnext->pnext;
_ffree(pnext);
pnext = pnext2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -