CvBlobTrackPostProcList(CvBlobTrackPostProcOne* (*create)()):m_BlobFilterList(sizeof(DefBlobFilter)) { m_Frame = 0; m_CreatePostProc = create; CvBlobTrackPostProcOne* pM = create(); TransferParamsFromChild(pM,NULL); pM->Release(); SetModuleName("List"); }
int AddAnalyzer(CvBlobTrackAnalysis* pA, const char* pName) { if(m_AnNum<MAX_ANS) { //int i; m_Ans[m_AnNum].pName = pName; m_Ans[m_AnNum].pAn = pA; TransferParamsFromChild(m_Ans[m_AnNum].pAn, pName); m_AnNum++; return 1; } else { printf("Can not add track analyzer %s! (not more that %d analyzers)\n",pName,MAX_ANS); return 0; } }
CvBlobTrackerCCCR(CvBlobTrackerOne* (*CreateCR)(), char* CRName):m_BlobList(sizeof(DefBlobTrackerCR)) { m_CreateCR = CreateCR; m_pMem = cvCreateMemStorage(); m_Collision = 1; /* if 1 then collistion will be detected and processed */ m_AlphaSize = 0.05f; AddParam("AlphaSize",&m_AlphaSize); CommentParam("AlphaSize", "Size update speed (0..1)"); strcpy(m_ModuleName, "CC"); if(CRName)strcat(m_ModuleName,CRName); SetModuleName(m_ModuleName); { CvBlobTrackerOne* pM = m_CreateCR(); TransferParamsFromChild(pM,NULL); pM->Release(); } SetParam("SizeVar",0); };