void CTrainNumberIdentificationDlg::findFile(CString str)
{
g_log.Log(str+"文件夹识别开始!------------------------------------------------------------\n");
CString m_cstrFileList="";
CFileFind tempFind;
BOOL bFound; //判断是否成功找到文件
bFound=tempFind.FindFile(str + "\\*.*"); //修改" "内内容给限定查找文件类型
CString strTmp; //如果找到的是文件夹 存放文件夹路径
RecogOneTrainByQueue recg;
TeObjectSet stObjSet;
IplImage* pSrcImage = NULL;
CString strFileName = "";
BOOL bRetVal = FALSE;
int nMaxCount = 0;
char strTrainNumber[16] = {0};
while(bFound) //遍历所有文件
{
bFound=tempFind.FindNextFile(); //第一次执行FindNextFile是选择到第一个文件,以后执行为选择
//到下一个文件
if(tempFind.IsDots()) continue; //如果找到的是返回上层的目录 则结束本次查找
if(tempFind.IsDirectory()) //找到的是文件夹,则遍历该文件夹下的文件
{
strTmp="";
strTmp=tempFind.GetFilePath();
findFile(strTmp);
}
else
{
g_num++;
strFileName=tempFind.GetFilePath();
pSrcImage = cvLoadImage(strFileName.GetBuffer(0), CV_LOAD_IMAGE_COLOR);
strFileName.ReleaseBuffer();
if(NULL != pSrcImage)
{
ZeroMemory(&stObjSet,sizeof(TeObjectSet));
tePrediction(pSrcImage, &stObjSet);
cvReleaseImage(&pSrcImage);
pSrcImage = NULL;
stObjSet.iNum = (stObjSet.iNum > 15)?(15):(stObjSet.iNum);
if(stObjSet.iNum >= 5 && stObjSet.iNum <= 15)
{
ZeroMemory(strTrainNumber,sizeof(strTrainNumber));
if(strFileName.Find("big") >= 0)
recg.ReadTrainNumber(strTrainNumber,&stObjSet,2);
else
recg.ReadTrainNumber(strTrainNumber,&stObjSet,2);
pair<CString,CString> temp(strTrainNumber,strFileName);
//m_one_vehicle_all_results.push_back(temp);
}
//m_plogFile->Log("%s------>%s\n",strFileName,strTrainNumber);
}
g_log.Log(tempFind.GetFilePath()+"-----------"+strTrainNumber+"\n");
}
}
tempFind.Close();
g_log.Log(str+"文件夹识别结束!------------------------------------------------------------\n");
return;
}
{
g_log.Log(str+"文件夹识别开始!------------------------------------------------------------\n");
CString m_cstrFileList="";
CFileFind tempFind;
BOOL bFound; //判断是否成功找到文件
bFound=tempFind.FindFile(str + "\\*.*"); //修改" "内内容给限定查找文件类型
CString strTmp; //如果找到的是文件夹 存放文件夹路径
RecogOneTrainByQueue recg;
TeObjectSet stObjSet;
IplImage* pSrcImage = NULL;
CString strFileName = "";
BOOL bRetVal = FALSE;
int nMaxCount = 0;
char strTrainNumber[16] = {0};
while(bFound) //遍历所有文件
{
bFound=tempFind.FindNextFile(); //第一次执行FindNextFile是选择到第一个文件,以后执行为选择
//到下一个文件
if(tempFind.IsDots()) continue; //如果找到的是返回上层的目录 则结束本次查找
if(tempFind.IsDirectory()) //找到的是文件夹,则遍历该文件夹下的文件
{
strTmp="";
strTmp=tempFind.GetFilePath();
findFile(strTmp);
}
else
{
g_num++;
strFileName=tempFind.GetFilePath();
pSrcImage = cvLoadImage(strFileName.GetBuffer(0), CV_LOAD_IMAGE_COLOR);
strFileName.ReleaseBuffer();
if(NULL != pSrcImage)
{
ZeroMemory(&stObjSet,sizeof(TeObjectSet));
tePrediction(pSrcImage, &stObjSet);
cvReleaseImage(&pSrcImage);
pSrcImage = NULL;
stObjSet.iNum = (stObjSet.iNum > 15)?(15):(stObjSet.iNum);
if(stObjSet.iNum >= 5 && stObjSet.iNum <= 15)
{
ZeroMemory(strTrainNumber,sizeof(strTrainNumber));
if(strFileName.Find("big") >= 0)
recg.ReadTrainNumber(strTrainNumber,&stObjSet,2);
else
recg.ReadTrainNumber(strTrainNumber,&stObjSet,2);
pair<CString,CString> temp(strTrainNumber,strFileName);
//m_one_vehicle_all_results.push_back(temp);
}
//m_plogFile->Log("%s------>%s\n",strFileName,strTrainNumber);
}
g_log.Log(tempFind.GetFilePath()+"-----------"+strTrainNumber+"\n");
}
}
tempFind.Close();
g_log.Log(str+"文件夹识别结束!------------------------------------------------------------\n");
return;
}