| | |
| | | #include "faceAPI.h"
|
| | | #include <iostream>
|
| | |
|
| | | FaceDB *fdb;
|
| | |
|
| | | FaceAPI::FaceAPI()
|
| | | {
|
| | | //创建静态人脸识别句柄,同时创建状态标量
|
| | |
| | | FaceAPI::~FaceAPI()
|
| | | {
|
| | |
|
| | | }
|
| | |
|
| | | int FaceAPI::do_init(char* db_path)
|
| | | {
|
| | | return fdb->init(db_path);
|
| | | }
|
| | |
|
| | | //@brief 搜索功能
|
| | |
| | | p_f = fdb->extract_feature(image);
|
| | | int indx = fdb->db_add(p_f);
|
| | | if(fdb->finally())
|
| | | {
|
| | | fprintf(stderr, "fdb->finally()%d\n",indx);
|
| | | return indx;
|
| | | }
|
| | |
|
| | | return -2;
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | if(db_save())
|
| | | {
|
| | |
|
| | | return true;
|
| | | }
|
| | |
|
| | |
| | | {
|
| | | fprintf(stderr, "save done!\n");
|
| | | }
|
| | |
|
| | | cv_verify_destroy_db(handle_db);
|
| | | fprintf(stderr, "db_save end!\n");
|
| | | return true;
|
| | | }
|
| | |
|
| | |
| | | fprintf(stderr, "cv_verify_search_face failed, error code %d\n", cv_result);
|
| | | }
|
| | | std::cout<<"this is hits"<<std::endl;
|
| | | if (top_scores[0] != 0)
|
| | | if (top_scores[0] >= 0.7)
|
| | | {
|
| | | indx=top_idxs[0];
|
| | | std::cout<<"indx="<<indx<<std::endl;
|
| | |
| | | cv_face_t *p_face = NULL;
|
| | | int face_count = 0;
|
| | | cv_result_t st_result = CV_OK;
|
| | | fprintf(stderr, "cv_face_detect start!\n");
|
| | | if (handle_detect != NULL)
|
| | | {
|
| | | fprintf(stderr, "handle_detect is not null!\n");
|
| | | }
|
| | | else
|
| | | {
|
| | | fprintf(stderr, "handle_detect is null!\n");
|
| | | }
|
| | | st_result = cv_face_detect(handle_detect, image_color.data, CV_PIX_FMT_BGR888,
|
| | | image_color.cols, image_color.rows, image_color.step,
|
| | | CV_FACE_UP, &p_face, &face_count);
|
| | | fprintf(stderr, "cv_face_detect end!\n");
|
| | | if (face_count >= 1)
|
| | | {
|
| | | fprintf(stderr, "cv_verify_get_feature end!\n");
|
| | | st_result = cv_verify_get_feature(handle_verify,
|
| | | (unsigned char *)image_color.data, CV_PIX_FMT_BGR888,
|
| | | image_color.cols, image_color.rows, image_color.step,
|
| | | p_face, &p_feature, NULL);
|
| | | fprintf(stderr, "cv_verify_get_feature end!\n");
|
| | | if (st_result != CV_OK)
|
| | | {
|
| | | fprintf(stderr, "cv_verify_get_feature failed, error code %d\n", st_result);
|