#include "faceAPI.h"?#include "faceDB.h"??faceDB fdb = faceDB::faceDB();?faceAPI::faceAPI(){? //´´½¨¾²Ì¬ÈËÁ³Ê¶±ð¾ä±ú£¬Í¬Ê±´´½¨×´Ì¬±êÁ¿? cv_result_t cv_result = 0;? cv_face_create_detector(&handle_detect, NULL, CV_DETECT_ENABLE_ALIGN_21);? cv_verify_create_handle(&handle_verify1, "verify.model");? //faceDB* f_db = faceDB.GetInstance();?}??faceAPI::~faceAPI(){??}??int faceAPI::do_reasch(cv::Mat image){? if (!image.data) {? fprintf(stderr, "fail to read img\n");? return -1;? }else? fprintf(stderr, "read img\n");? p_f = extract_feature(image);? if (!p_f)? {? fprintf(stderr, "p_f is null\n");? return -2;? }? return p_img_search(p_f); ?}??int faceAPI::do_reasch(char* s_feature){? get_feature(s_feature,p_f);? return p_img_search(p_f);?}??int faceAPI::do_register(cv::Mat image){? p_f = extract_feature(image);? //db add? int indx = 1;? return indx;?}???int faceAPI::p_img_search(cv_feature_t *p_feature){? std::cout<<"p img search"<= 1) {? st_result = cv_verify_get_feature(handle_verify1,? (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);? }? } else {? fprintf(stderr, "can't find face in ");? }? // release the memory of face? cv_face_release_detector_result(p_face, face_count);? return p_feature;?}???//@brief ÌØÕ÷ֵת»»Îª×Ö·û´®?//@param ÌØÕ÷Öµ?//@return ×Ö·û´®¸ñʽµÄÌØÕ÷Öµ?int faceAPI::get_char(cv_feature_t *p_feature,char* feature_str){?? return cv_verify_serialize_feature(p_feature,feature_str);?}??//@brief ×Ö·û´®×ª»»ÎªÌØÕ÷Öµ?//@param ×Ö·û´®¸ñʽµÄÌØÕ÷Öµ?//@return ÌØÕ÷Öµ?int faceAPI::get_feature(char *feature_str,cv_feature_t *p_feature){?? p_feature = cv_verify_deserialize_feature(feature_str);? if(p_feature != NULL){? return 0;? }else? return -1;?}