64 lines
No EOL
1.1 KiB
C
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 |