Esempio n. 1
0
        /// <summary>
        /// 初始化引擎
        /// </summary>
        /// <param name="detectMode">识别模式</param>
        /// <param name="orientPriority">识别角度</param>
        /// <param name="detectFaceMaxNum">最大人脸数[1,10]</param>
        /// <param name="combinedMask">功能组合</param>
        /// <param name="detectFaceScaleVal">识别的最小人脸比例(仅支持2.x及3.x版本)</param>
        public void InitEngine(ASF_DetectMode detectMode, ArcSoftFace_OrientPriority orientPriority, int detectFaceMaxNum, ASF_Mask combinedMask, int detectFaceScaleVal = 16)
        {
            if (_version >= 4 && combinedMask.HasFlag(ASF_Mask.ASF_FACERECOGNITION) && !combinedMask.HasFlag(ASF_Mask.ASF_MASKDETECT))//4.x提取特征值必须要判断是否佩戴口罩特性
            {
                combinedMask |= ASF_Mask.ASF_MASKDETECT;
            }
            CombinedMask = combinedMask;
            IntPtr hEngine = IntPtr.Zero;

            if (_version <= 2 && orientPriority == ArcSoftFace_OrientPriority.ASF_OP_ALL_OUT)
            {
                orientPriority = ArcSoftFace_OrientPriority.ASF_OP_0_ONLY;
            }
            var result =
                _version >= 4 ?
                ASFFunctions.ASFInitEngine(detectMode, orientPriority, detectFaceMaxNum, (int)combinedMask, out hEngine) :
                ASFFunctions.Compatible.ASFInitEngine(detectMode, orientPriority, detectFaceScaleVal, detectFaceMaxNum, (int)combinedMask, out hEngine);

            if (result == MResult.MOK)
            {
                EngineHandler = hEngine;
                if (_version == 2)//2.x需要先初始化引擎后才可以获取到版本信息
                {
                    GetVersion();
                }
                return;
            }
            throw new Exception($"引擎初始化错误.{result}");
        }
Esempio n. 2
0
 public static extern MResult ASFProcessEx_IR(IntPtr hEngine, ASVLOFFSCREEN imgData, ASF_MultiFaceInfo detectedFaces, ASF_Mask combinedMask = ASF_Mask.ASF_IR_LIVENESS);
Esempio n. 3
0
 public static extern MResult ASFProcess_IR(IntPtr hEngine, int width, int height, int format, IntPtr imgData, ASF_MultiFaceInfo detectedFaces, ASF_Mask combinedMask = ASF_Mask.ASF_IR_LIVENESS);