#ifndef ____HAAD_H____ #define ____HAAD_H____ #define MAX_HAAR_RECTS 3 #define HAAR_SCALAR short #define HAAR_SCALAR_MULT 16384.0f #define POST_NEXT typedef struct HAAR_POINT_ { char X,Y; } HAAR_POINT; #define BIG_SCALE 1 typedef struct HAAR_RECT_ { short Offset0; union { HAAR_POINT Min; short Offset1; }; union { HAAR_POINT Max; short Offset2; }; HAAR_SCALAR W; } HAAR_RECT; typedef struct HAAR_Feature_ { HAAR_RECT Feat[MAX_HAAR_RECTS]; HAAR_SCALAR Thresh; HAAR_SCALAR LeftRight[2]; } HAAR_Feature; typedef struct HAAR_Stage_ { int ulNumberOfFeatures; int ulRealNumberOfFeatures; HAAR_Feature *pStageFeatures; union { HAAR_Stage_ *pNext[2];//0=child struct { HAAR_Stage_ *pchild; HAAR_Stage_ *pRealNext; }; }; HAAR_Stage_ *pParent; } HAAR_Stage; typedef struct HAAR_Classifier_ { HAAR_POINT WindowSize; unsigned int ulNumberOfStages; unsigned int ulRealNumberOfStages; HAAR_Stage *p_Stages; } HAAR_Classifier; void HAAR_Classifier_free(HAAR_Classifier**p_haar); HAAR_Classifier* HAAR_Create_FaceFront(); HAAR_Classifier *HAAR_Optimize(HAAR_Classifier *pClassifier,float Scale,unsigned int Pitch); #endif