/// <summary> /// 额头区域检测 /// </summary> /// <param name="pEngine">引擎Handle</param> /// <param name="imageInfo">图像数据</param> /// <param name="multiFaceInfo">人脸检测结果</param> /// <returns>额头区域检测结构体</returns> public static LandMarkInfo LandMarkEstimation(FaceEngine faceEngine, Image image, MultiFaceInfo multiFaceInfo, out int retCode) { retCode = -1; LandMarkInfo landMarkInfo = new LandMarkInfo(); try { if (multiFaceInfo.faceNum <= 0) { return(landMarkInfo); } //人脸信息检测 retCode = faceEngine.ASFProcessEx(image, multiFaceInfo, FaceEngineMask.ASF_FACELANDMARK); if (retCode == 0) { //获取额头区域检测结果 retCode = faceEngine.ASFGetFaceLandMark(out landMarkInfo); } } catch (Exception ex) { LogUtil.LogInfo(typeof(FaceUtil), ex); } return(landMarkInfo); }
/// <summary> /// 人脸检测 /// </summary> /// <param name="pEngine">引擎Handle</param> /// <param name="image">图像</param> /// <returns></returns> public static MultiFaceInfo DetectFaceAndLandMark(FaceEngine faceEngine, Image image) { MultiFaceInfo multiFaceInfo = null; try { int retCode = faceEngine.ASFDetectFacesEx(image, out multiFaceInfo); if (retCode == 0) { LandMarkInfo landmarkInfo = LandMarkEstimation(faceEngine, image, multiFaceInfo, out retCode); if (retCode == 0) { multiFaceInfo.pointAyy = landmarkInfo.pointAyy; } } } catch (Exception ex) { LogUtil.LogInfo(typeof(FaceUtil), ex); } return(multiFaceInfo); }