chenke
2017-07-20 41bc5a329c73e3b43695f73f11c47c97c44cc1b6
FaceServer/sample_face_search.h
@@ -1,32 +1,63 @@
#ifndef _SAMPLE_FACE_SEARCH_H_
#define _SAMPLE_FACE_SEARCH_H_
#include <stdint.h>
#include <vector>
typedef void* cv_handle_t;
struct cv_feature_t;
struct stface_handles
{
   cv_handle_t handle_verify;
   cv_handle_t handle_db;
   cv_handle_t handle_detect;
   cv_handle_t handle_db;
   
   stface_handles() : handle_verify(nullptr), handle_db(nullptr), handle_detect(nullptr)
   stface_handles() : handle_verify(nullptr), handle_detect(nullptr), handle_db(nullptr)
   {}
};
struct STFaceImage
{
   int32_t db_id;
   int16_t mb_type; // MB_Frame::MBFType
   int16_t width;
   int16_t height;
   uint32_t size;
   const uint8_t* buff;
};
struct TopIdxScore
{
   int idx;
   float score;
   TopIdxScore(int _idx, float _score) : idx(_idx), score(_score)
   {}
};
typedef std::vector<TopIdxScore> top_idx_score_vect_t;
cv_feature_t *stface_extract_feature(stface_handles& handles, const char *image_path);
cv_feature_t *stface_extract_feature(stface_handles& handles, const STFaceImage& image);
float stface_compare(stface_handles& handles, const STFaceImage& image1, const STFaceImage& image2);
int stface_db_add(stface_handles& handles, const char *image_path);
int stface_db_add(stface_handles& handles, const STFaceImage& image);
bool stface_db_del(stface_handles& handles, int idx);
bool stface_db_save(stface_handles& handles, char *db_path);
bool stface_db_save(stface_handles& handles, const char *db_path);
bool stface_db_load(stface_handles& handles, char *db_path);
bool stface_db_load(stface_handles& handles, const char *db_path);
bool stface_db_create(stface_handles& handles, const char *db_path);
bool stface_db_gen(stface_handles& handles, char *image_list, char *output_db_path);
bool stface_search_db(stface_handles& handles, char *image_path);
bool stface_search_db(stface_handles& handles, const STFaceImage& image, top_idx_score_vect_t& result);
bool stface_search_list(stface_handles& handles, char *image_path, char *list_path);
@@ -34,4 +65,6 @@
int stface_main(int argc, char *argv[]);
int stface_init_license(const char* lic_path);
#endif