C API

// typedefs

typedef struct CvHidHaarClassifierCascade CvHidHaarClassifierCascade;

// structs

struct CvAvgComp;
struct CvHaarClassifier;
struct CvHaarClassifierCascade;
struct CvHaarFeature;
struct CvHaarStageClassifier;

// global functions

CvSeq*
cvHaarDetectObjects(
    const CvArr* image,
    CvHaarClassifierCascade* cascade,
    CvMemStorage* storage,
    double scale_factor = 1.1,
    int min_neighbors = 3,
    int flags = 0,
    CvSize min_size = cvSize(0, 0),
    CvSize max_size = cvSize(0, 0)
    );

CvHaarClassifierCascade*
cvLoadHaarClassifierCascade(
    const char* directory,
    CvSize orig_window_size
    );

void
cvReleaseHaarClassifierCascade(CvHaarClassifierCascade** cascade);

int
cvRunHaarClassifierCascade(
    const CvHaarClassifierCascade* cascade,
    CvPoint pt,
    int start_stage = 0
    );

void
cvSetImagesForHaarClassifierCascade(
    CvHaarClassifierCascade* cascade,
    const CvArr* sum,
    const CvArr* sqsum,
    const CvArr* tilted_sum,
    double scale
    );

// macros

#define CV_HAAR_DO_CANNY_PRUNING
#define CV_HAAR_DO_ROUGH_SEARCH
#define CV_HAAR_FEATURE_MAX
#define CV_HAAR_FIND_BIGGEST_OBJECT
#define CV_HAAR_MAGIC_VAL
#define CV_HAAR_SCALE_IMAGE
#define CV_IS_HAAR_CLASSIFIER(haar)
#define CV_TYPE_NAME_HAAR