houxiao
2017-01-10 4d2fdfa71faf0e79e10135f9ef47b68cb707d49b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef _PL_SENSETIMEFACEDETECT_H_
#define _PL_SENSETIMEFACEDETECT_H_
 
#include "PipeLine.h"
#include <vector>
 
struct PL_SensetimeFaceDetectPipeArgs
{
    void* faceDB;
    
    PL_SensetimeFaceDetectPipeArgs() : faceDB(nullptr)
    { }
};
 
struct PL_SensetimeFaceDetectConfig
{
    int point_size; // 21 / 106
    int point_size_config; // CV_DETECT_ENABLE_ALIGN_21 / CV_DETECT_ENABLE_ALIGN_106
    int detect_face_cnt_limit; // -1
    bool draw_face_rect;
    bool draw_face_feature_point;
    bool generate_face_feature; // for PL_SensetimeFaceFeatureEmit
    
    PL_SensetimeFaceDetectConfig() : 
        point_size(21), point_size_config(-1), detect_face_cnt_limit(-1), 
        draw_face_rect(true), draw_face_feature_point(true), generate_face_feature(false)
    { }
};
 
class PL_SensetimeFaceDetect : public PipeLineElem
{
public:
    PL_SensetimeFaceDetect();
    virtual ~PL_SensetimeFaceDetect();
 
    virtual bool init(void* args);
    virtual void finit();
 
    virtual bool pay(const PipeMaterial& pm);
    virtual bool gain(PipeMaterial& pm);
    
private:
    void* internal;
};
 
PipeLineElem* create_PL_SensetimeFaceDetect();
 
#endif