static int compare_face_feature(uint8_t* pfeature, ssq_face_id_t *id)
{
int i,ret;
uint8_t* scores = NULL;
face_info.cur_score = 0;
scores = (uint8_t*)malloc(config.max_enroll_face_num*sizeof(uint8_t));
if (scores == NULL)
{
LOGE("Failed to malloc scores\n");
return -1;
}
ret = NMSDK_IRFACE_CompareFeatureList(face_info.p_list_handle, pfeature, 0, -1, scores);
if (ret < 0) {
LOGE("Compare from feature list fail\n");
free(scores);
return -2;
}
else if(ret == 0)
{
/* no match */
}
else
{
for (i = 0; i < ret; ++i)
{
if (scores[i] > face_info.cur_score)
{
face_info.cur_score = scores[i];
*id = i;
LOGI("Similarity of compare scores : %d \n", face_info.cur_score);
}
}
}
free(scores);
return face_info.cur_score;
{
int i,ret;
uint8_t* scores = NULL;
face_info.cur_score = 0;
scores = (uint8_t*)malloc(config.max_enroll_face_num*sizeof(uint8_t));
if (scores == NULL)
{
LOGE("Failed to malloc scores\n");
return -1;
}
ret = NMSDK_IRFACE_CompareFeatureList(face_info.p_list_handle, pfeature, 0, -1, scores);
if (ret < 0) {
LOGE("Compare from feature list fail\n");
free(scores);
return -2;
}
else if(ret == 0)
{
/* no match */
}
else
{
for (i = 0; i < ret; ++i)
{
if (scores[i] > face_info.cur_score)
{
face_info.cur_score = scores[i];
*id = i;
LOGI("Similarity of compare scores : %d \n", face_info.cur_score);
}
}
}
free(scores);
return face_info.cur_score;
}
内存释放是后来添加的。