JD2022-TU1/main/extern/Camcam/HeadDetector/HAAR.h

64 lines
No EOL
1.1 KiB
C

#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