|
@@ -1015,7 +1015,9 @@ private:
|
|
|
if (!GetImage(eCamera)){
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
+
|
|
|
CvMemStorage*pFaceStorage = NULL;
|
|
|
if (eCamera == EnvironCamera){
|
|
|
pFaceStorage = m_pFaceStorage;
|
|
@@ -1039,7 +1041,7 @@ private:
|
|
|
else{
|
|
|
pFaceStorage = cvCreateMemStorage(0);
|
|
|
}
|
|
|
-
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
//人脸搜索
|
|
|
if (m_pFaceCascade == NULL){
|
|
|
return false;
|
|
@@ -1049,12 +1051,14 @@ private:
|
|
|
pfaceSeq = cvHaarDetectObjects(m_pProcessImg,m_pFaceCascade,pFaceStorage,1.2,3,CV_HAAR_DO_CANNY_PRUNING,cvSize(size,size));
|
|
|
if (!pfaceSeq || !pfaceSeq->total)
|
|
|
{
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
cvReleaseMemStorage(&pfaceSeq->storage);
|
|
|
pfaceSeq = NULL;
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- for(int i=0;i<(pfaceSeq?pfaceSeq->total:0)&&(i<MAX_FACE_NUM);i++)
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
+ for(int i = 0; i < (pfaceSeq?pfaceSeq->total:0)&&(i<MAX_FACE_NUM); i++)
|
|
|
{
|
|
|
//获取脸部矩形
|
|
|
pFaceRect = (CvRect*)cvGetSeqElem(pfaceSeq, i);
|
|
@@ -1102,6 +1106,7 @@ private:
|
|
|
pFaceRect->height = m_stAllFaceInfo.astFaceInfo[0].stRegion.stFaceRect.height;
|
|
|
}
|
|
|
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
//搜索到人脸,计算人脸数据
|
|
|
astFaceTemp.stRegion.stFaceRect = *pFaceRect;
|
|
|
astFaceTemp.stRegion.eRegion = CalcFaceRegion(*pFaceRect,m_nImgWidth,m_nImgHeight);
|
|
@@ -1121,7 +1126,9 @@ private:
|
|
|
|
|
|
int CurPointDist = CalcTwoFaceDist(&astFaceTemp.stRegion.stFaceRect,
|
|
|
&m_stAllFaceInfo.astFaceInfo[0].stRegion.stFaceRect);
|
|
|
-
|
|
|
+
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
+
|
|
|
//计算当前操作者的人脸区域
|
|
|
if(//如果temp数据为0,则更新temp
|
|
|
((TempRegion== 0)&&(TempDistance == 0.0)) ||
|
|
@@ -1140,7 +1147,7 @@ private:
|
|
|
memset(&astFaceTemp,0,sizeof(CCustomerInfo));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
if((UserFaceTemp.stRegion.eRegion!=0)&&(UserFaceTemp.eDistance!=0))
|
|
|
{
|
|
|
m_stAllFaceInfo.astFaceInfo[0].stRegion.stFaceRect = UserFaceTemp.stRegion.stFaceRect;
|
|
@@ -1916,10 +1923,12 @@ private:
|
|
|
{
|
|
|
m_eCamera = m_stAllFaceInfo.astFaceInfo[0].eCamera;
|
|
|
//先搜索上次搜索到人脸的区域
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d m_stAllFaceInfo.nTatolFaceNum = %d.", __FUNCTION__, __LINE__, m_stAllFaceInfo.nTatolFaceNum);
|
|
|
if(m_stAllFaceInfo.nTatolFaceNum > 0)
|
|
|
{
|
|
|
m_pHostApi->Debug(FACECAP_DEBUG, "Operator distance,CurCamera search last face Region");
|
|
|
bRst = FaceDetect(m_eCamera, m_stAllFaceInfo.astFaceInfo[0].stRegion.stUpperBodyRect);
|
|
|
+ m_pHostApi->Debug(FACECAP_DEBUG, "%s:%d.", __FUNCTION__, __LINE__);
|
|
|
}
|
|
|
else
|
|
|
{
|