Ejemplo n.º 1
0
        private void ImgCompare(string sfzImg, string paiZhaoImg)
        {
            if (Read_IdCardInfo.isFaceLode && Read_IdCardInfo._faceThread != null)
            {
                try
                {
                    QSNetFaceEngine.FaceModel[] faces2 = new QSNetFaceEngine.FaceModel[1];
                    int num2 = Read_IdCardInfo._faceThread.qsFaceEngine.detectFaces(paiZhaoImg, faces2, 1);
                    if (num2 < 1)
                    {
                        Console.WriteLine("没有检测到人脸");
                        timer.Start();
                    }

                    QSNetFaceEngine.FaceModel[] faces1 = new QSNetFaceEngine.FaceModel[1];
                    int num1 = Read_IdCardInfo._faceThread.qsFaceEngine.detectFaces(sfzImg, faces1, 1);
                    if (num1 < 1)
                    {
                        Console.WriteLine("没有检测到人脸");
                        timer.Start();
                    }

                    float score = Read_IdCardInfo._faceThread.qsFaceEngine.compare2Feature(faces1[0].feature, faces2[0].feature);

                    Console.WriteLine("相似度:" + score);
                    if (score >= GetFaceThreshold())
                    {
                        timer.Close();
                        MessageBox.Show("相似度" + score + ",人脸验证通过!");
                        App.Current.Dispatcher.Invoke((Action)(() =>
                        {
                            this.Close();
                            CameraHelper.CloseDevice();
                            Console.WriteLine("关闭摄像头");
                        }));
                    }
                    else
                    {
                        MessageBox.Show("相似度" + score + ",人脸验证未通过!");
                        timer.Start();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("人脸识别出错" + ex.Message);
                    timer.Start();
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 图片比对
        /// </summary>
        /// <param name="sfzImg">身份证图片</param>
        /// <param name="paiZhaoImg">抓拍照片</param>
        public void TuPianBiDui(string sfzImg, string paiZhaoImg)
        {
            if (isFaceLode && _faceThread != null)
            {
                try
                {
                    QSNetFaceEngine.FaceModel[] faces2 = new QSNetFaceEngine.FaceModel[1];
                    int num2 = _faceThread.qsFaceEngine.detectFaces(paiZhaoImg, faces2, 1);
                    if (num2 < 1)
                    {
                        Console.WriteLine("没有检测到人脸");
                    }


                    QSNetFaceEngine.FaceModel[] faces1 = new QSNetFaceEngine.FaceModel[1];
                    int num1 = _faceThread.qsFaceEngine.detectFaces(sfzImg, faces1, 1);
                    if (num1 < 1)
                    {
                        Console.WriteLine("没有检测到人脸");
                    }


                    float score = _faceThread.qsFaceEngine.compare2Feature(faces1[0].feature, faces2[0].feature);

                    Console.WriteLine("相似度:" + score);
                    if (score >= GetFaceThreshold())
                    {
                        SetSimilarity(score);
                    }
                    else
                    {
                        SetSimilarity(score);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("人脸识别出错" + ex.Message);
                    //Trace.Write(ex.Message, "人脸识别出错");
                }
            }
            else
            {
                MessageBox.Show("加载人脸识别");
            }
        }
Ejemplo n.º 3
0
 public FaceThread(MainWindow mainFrom)
 {
     try
     {
         _mainForm  = mainFrom;
         _stop      = false;
         faces      = new QSNetFaceEngine.FaceModel[1];
         faces2     = new QSNetFaceEngine.FaceModel[2];
         _haveImage = new AutoResetEvent(false);
         //初始化人脸引擎
         qsFaceEngine = new QSNetFaceEngine();
         bool tag = qsFaceEngine.initial();
         if (!tag)
         {
             return;
         }
     }
     catch (Exception ex)
     {
     }
 }
Ejemplo n.º 4
0
 public FaceThread()
 {
     try
     {
         _stop      = false;
         faces      = new QSNetFaceEngine.FaceModel[1];
         faces2     = new QSNetFaceEngine.FaceModel[2];
         _haveImage = new AutoResetEvent(false);
         //初始化人脸引擎
         qsFaceEngine = new QSNetFaceEngine();
         bool tag = qsFaceEngine.initial();
         if (!tag)
         {
             return;
         }
         Console.WriteLine("人脸加载成功");
     }
     catch (Exception ex)
     {
     }
 }