a
554325746@qq.com
2020-01-15 956063ff14bc75e3a2a97c7bcaa06b9edc84ad24
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
49
50
51
52
53
54
55
56
57
58
59
#ifndef FACEID2_0_RGBDETECT_H
#define FACEID2_0_RGBDETECT_H
 
#include <memory>
#include "THFeature_i.h"
#include <memory>
 
#include "BaseDetect.h"
#include "FileUtil.h"
 
#include "FiStdDefEx.h"
//#include "THFaceLive_i.h"
#include <vector>
#include <stdio.h>
using namespace std;
 
class RgbDetect : public BaseDetect {
public:
    RgbDetect(const char* rgbFileName, int width, int height) {
        if (rgbFileName != nullptr) {
            RgbDetect::rgbFileName = rgbFileName;
            RgbDetect::width = width;
            RgbDetect::height = height;
            size_t fileSize = FileUtil::getFileSize(rgbFileName);
            if (RgbDetect::fileSize != fileSize) {
                RgbDetect::rgb_image_buffer = make_shared<vector<unsigned char>>(fileSize);
                RgbDetect::fileSize = fileSize;
            }
            if (RgbDetect::rgb_image_buffer == nullptr) {
                RgbDetect::rgb_image_buffer = make_shared<vector<unsigned char>>(fileSize);
            }
            if (RgbDetect::facePos == nullptr) {
                RgbDetect::facePos = make_shared<vector<THFI_FacePos>>(5);
            }
 
            FILE *file = fopen(rgbFileName, "r+");
            int bytes_read = fread(rgb_image_buffer.get()->data(), sizeof(unsigned char), fileSize, file);
            fclose(file);
            //FileUtil::readFile(rgbFileName, RgbDetect::rgb_image_buffer,fileSize);
        }
    }
    bool detect(int detectFaceCount) ;
    bool detect(int channel, int detectFaceCount) ;
    bool detect4(int channel, int detectFaceCount) ;
    static shared_ptr<vector<unsigned char>> rgb_image_buffer;
    static shared_ptr<vector<THFI_FacePos>> facePos;
    static shared_ptr<vector<unsigned char>> rgb_image_buffer4;
    static shared_ptr<vector<THFI_FacePos>> facePos4;
    static const char* rgbFileName;
    static int width;
    static int height;
    static long int fileSize;
    static int face_nums;
    static int face_nums4;
 
};
 
 
#endif //FACEID2_0_RGBDETECT_H