From 865a8c4e82eb9449c422cec0acc72d944a35bbd7 Mon Sep 17 00:00:00 2001 From: pans <pans@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 30 十二月 2016 10:27:14 +0800 Subject: [PATCH] --- RtspFace/demo/src/faceDB.cpp | 61 ++++++++++++++---------------- 1 files changed, 29 insertions(+), 32 deletions(-) diff --git a/RtspFace/demo/src/faceDB.cpp b/RtspFace/demo/src/faceDB.cpp index c5b226c..f57c356 100644 --- a/RtspFace/demo/src/faceDB.cpp +++ b/RtspFace/demo/src/faceDB.cpp @@ -5,7 +5,8 @@ //"./out1.db" char *db_path = "out.db"; -faceDB::faceDB(){ +faceDB::faceDB() +{ // 创建人脸数据库句柄 cv_verify_create_db(&handle_db); fprintf(stderr, "create cv_verify_create_db\n"); @@ -17,20 +18,21 @@ fprintf(stderr, "db load\n"); } -faceDB::~faceDB(){} +faceDB::~faceDB() {} /* faceDB* faceDB::GetInstance(){ if (db == NULL) { db = new faceDB(); - } + } return db; }*/ //数据库添加数据,并返回记录得id -int faceDB::db_add(cv_feature_t* p_feature) { +int faceDB::db_add(cv_feature_t* p_feature) +{ int idx; cv_result_t cv_result = cv_verify_add_face(handle_db, p_feature, &idx); if (cv_result != CV_OK) { @@ -42,13 +44,13 @@ //数据库保存 -bool faceDB::db_save() { +bool faceDB::db_save() +{ cv_result = cv_verify_save_db(handle_db, db_path); if (cv_result != CV_OK) { fprintf(stderr, "cv_verify_save_db failed, error code %d\n", cv_result); return false; - } - else { + } else { fprintf(stderr, "save done!\n"); } @@ -56,21 +58,18 @@ } //数据库加载 -bool faceDB::db_load() { - if (handle_db != NULL) - { +bool faceDB::db_load() +{ + if (handle_db != NULL) { fprintf(stderr, "handle_db is not null!%s\n",db_path); - } - else - { + } else { fprintf(stderr, "handle_db is null!%s\n",db_path); } cv_result = cv_verify_load_db(handle_db, db_path); if (cv_result != CV_OK) { fprintf(stderr, "cv_verify_load_db failed, error code %d\n", cv_result); return false; - } - else { + } else { fprintf(stderr, "load done!\n"); } @@ -78,9 +77,10 @@ } //搜索数据库 -int faceDB::search_db(cv_feature_t *p_feature) { +int faceDB::search_db(cv_feature_t *p_feature) +{ - + int indx=-1; //查询前10条 int top_k = 3; @@ -88,8 +88,8 @@ float *top_scores = new float[top_k]; unsigned int result_length = 0; cv_result = cv_verify_search_face(handle_verify, handle_db, - p_feature, top_k, - top_idxs, top_scores, &result_length); + p_feature, top_k, + top_idxs, top_scores, &result_length); if (cv_result == CV_OK) { @@ -102,8 +102,7 @@ } else { fprintf(stderr, "cv_verify_search_face failed, error code %d\n", cv_result); } - if (top_scores[0] != 0) - { + if (top_scores[0] != 0) { indx=top_idxs[0]; } if (top_idxs) { @@ -116,14 +115,12 @@ return indx; } -cv_feature_t* faceDB::extract_feature(cv::Mat image_color) { +cv_feature_t* faceDB::extract_feature(cv::Mat image_color) +{ - if (handle_verify != NULL) - { + if (handle_verify != NULL) { fprintf(stderr, "fdb.handle_verify is not null!\n"); - } - else - { + } else { fprintf(stderr, "fdb.handle_verify is null!\n"); } @@ -132,13 +129,13 @@ int face_count = 0; cv_result_t st_result = CV_OK; 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); + image_color.cols, image_color.rows, image_color.step, + CV_FACE_UP, &p_face, &face_count); if (face_count >= 1) { 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); + (unsigned char *)image_color.data, CV_PIX_FMT_BGR888, + image_color.cols, image_color.rows, image_color.step, + p_face, &p_feature, NULL); if (st_result != CV_OK) { fprintf(stderr, "cv_verify_get_feature failed, error code %d\n", st_result); } -- Gitblit v1.8.0