Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }