/// <summary>
        /// 训练人脸识别器
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public TrainedFaceRecognizer SetTrainedFaceRecognizer(FaceRecognizerType type)
        {
            try
            {
                _trainedFaceRecognizer = new TrainedFaceRecognizer();
                _trainedFaceRecognizer.trainedFileList = SetSampleFacesList();

                switch (type)
                {
                case FaceRecognizerType.EigenFaceRecognizer:
                    _trainedFaceRecognizer.faceRecognizer = new Emgu.CV.Face.EigenFaceRecognizer(80, double.PositiveInfinity);

                    break;

                case FaceRecognizerType.FisherFaceRecognizer:
                    _trainedFaceRecognizer.faceRecognizer = new Emgu.CV.Face.FisherFaceRecognizer(80, 3500);
                    break;

                case FaceRecognizerType.LBPHFaceRecognizer:
                    _trainedFaceRecognizer.faceRecognizer = new Emgu.CV.Face.LBPHFaceRecognizer(1, 8, 8, 8, 100);
                    break;
                }

                //根据样例图片训练faceRecognizer
                _trainedFaceRecognizer.faceRecognizer.Train(_trainedFaceRecognizer.trainedFileList.trainedImages,
                                                            _trainedFaceRecognizer.trainedFileList.trainedLabelOrder);

                return(_trainedFaceRecognizer);
            }
            catch (Exception ex) { throw ex; }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 训练人脸识别器
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public TrainedFaceRecognizer SetTrainedFaceRecognizer(FaceRecognizerType type)
        {
            tfr = new TrainedFaceRecognizer();
            tfr.trainedFileList = SetSampleFacesList();

            switch (type)
            {
            case FaceRecognizerType.EigenFaceRecognizer:
                tfr.faceRecognizer = new Emgu.CV.Face.EigenFaceRecognizer(80, double.PositiveInfinity);

                break;

            case FaceRecognizerType.FisherFaceRecognizer:
                tfr.faceRecognizer = new Emgu.CV.Face.FisherFaceRecognizer(80, 3500);
                break;

            case FaceRecognizerType.LBPHFaceRecognizer:
                tfr.faceRecognizer = new Emgu.CV.Face.LBPHFaceRecognizer(1, 8, 8, 8, 100);
                break;
            }
            if (tfr.trainedFileList.trainedFileName.Count > 0 || tfr.trainedFileList.trainedImages.Count > 0 || tfr.trainedFileList.trainedLabelOrder.Count > 0)
            {
                tfr.faceRecognizer.Train(tfr.trainedFileList.trainedImages.ToArray(), tfr.trainedFileList.trainedLabelOrder.ToArray());
            }
            return(tfr);
        }