#ifndef libalg_api_h #define libalg_api_h #ifdef __cplusplus extern "C" { #endif // // 图像结构 // typedef struct ALG_IMAGE_INFO { unsigned int image_width; //图像宽度 unsigned int image_height; //图像高度 unsigned int image_stride; //图像行宽 unsigned int image_format; //预留,暂时只支持NV21 unsigned char *image_buffer; //图像buff }C_ALG_IMAGE_INFO; // // 返回定义 // typedef enum ALG_RESULT { // // 执行成功 // ALG_SUCCESS = 0, // // 算法未定义 // ERR_ALG_NULL = 1000, // // KEY校验失败 // ERR_KEY = 1001, // // 算法初始化失败 // ERR_ALG_INIT = 1002, // // 创建算法失败 // ERR_ALG_CREAT = 1003, // // 算法使能模块错误。 // ERR_ALG_CONFLICT = 1004, // // 检测算法执行错误 // ERR_ALG_DETECT_EXEC = 1005, // // 口罩算法执行错误 // ERR_ALG_MASK_EXEC = 1006, // // 提取特征执行错误 // ERR_ALG_FEATURE_EXEC = 1007, // // 人脸比对执行错误 // ERR_ALG_MATCH_EXEC = 1008, // // 人形检测执行错误 // ERR_ALG_PROCESS_EXEC = 1009, // // 检测人脸为空 // ERR_ALG_FACE_NULL = 1010, // // 不允许多个人脸 // ERR_ALG_FACE_MULTI = 1010, // // 姿态分数过低 // ERR_ALG_FACE_QUALITY = 1011, // // 人脸注册数量已满 // ERR_ALG_FACE_FULL = 1012, // // 不存在的注册信息 // ERR_ALG_FACE_NOTUSER = 1013, }C_ALG_RESULT; // @brief 从原图仿射变换得到人脸小图 // @param src_img 原始YUV图像,注意:图像buff为虚拟地址 // @param dst_img 输出仿射变换的YUV归一化图,注意:该地址请预先分配好。 // @param targetpoints 进行仿射变换归一的5个标签点,长度为10。其内存排列为:xy xy xy xy xy // (targetpoints[0]为第一个标签点的x,targetpoints[9]为第五个标签点的y) // @param keypoints 人脸检测模块输出的5个关键点,长度为10。其内存排列为:xy xy xy xy xy // (keypoints[0]为第一个关键点的x,keypoints[9]为第五个关键点的y) // @return 成功返回ALG_RESULT,其他值参见C_ALG_RESULT的定义 C_ALG_RESULT alg_api_face_feature_warpaffine( C_ALG_IMAGE_INFO *src_img, C_ALG_IMAGE_INFO *dst_img, float *targetpoints,float *keypoints); // @brief 从原图仿射变换得到车牌小图 // @param src_img 原始YUV图像,注意:图像buff为虚拟地址 // @param dst_img 输出仿射变换的YUV归一化图,注意:该地址请预先分配好。 // @param targetpoints 进行仿射变换归一的4个标签点,长度为8。其内存排列为:xy xy xy xy // (targetpoints[0]为第一个标签点的x,targetpoints[8]为第4个标签点的y) // @param keypoints 车牌检测模块输出的4个关键点,长度为8。其内存排列为:xy xy xy xy // (keypoints[0]为第一个关键点的x,keypoints[8]为第4个关键点的y) // @return 成功返回ALG_RESULT,其他值参见C_ALG_RESULT的定义 C_ALG_RESULT alg_api_plate_warpaffine( C_ALG_IMAGE_INFO *src_img, C_ALG_IMAGE_INFO *dst_img, float *targetpoints,float *keypoints); #ifdef __cplusplus } #endif /* End of #ifdef __cplusplus */ #endif