资源简介

前段时间因项目中有用到人脸识别,折腾了好久才解决了问题。现将简单的人脸识别功能分享出来,供大家研究。 是基于OpenCVSharp写的人脸识别功能,启用电脑自带的摄像头,识别到人脸图片,并以视频的形式显示到界面上。

资源截图

代码片段和文件信息

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using OpenCvSharp.Extensions;
namespace FaceDetect
{
    public partial class Form1 : Form
    {
        private VideoCapture myVideoCapture = null;
        private Thread myThread;
        private bool isOpenCamera = false;
        private bool isFaceDetect = false;
        public Form1()
        {
            InitializeComponent();
        }

        private void btnOpen_Click(object sender EventArgs e)
        {
            if (!isOpenCamera)
            {
                myVideoCapture = new VideoCapture(CaptureDevice.Any);
                
                if (!myVideoCapture.IsOpened())
                {
                    MessageBox.Show(“摄像头打不开“ “故障“ MessageBoxButtons.OK MessageBoxIcon.Error);
                    return;
                }
                myVideoCapture.Set(CaptureProperty.frameWidth 450);//宽度
                myVideoCapture.Set(CaptureProperty.frameHeight 360);//高度
                isOpenCamera = true;
                myThread = new Thread(playVideo);
                myThread.Start();
                btnOpen.Text = “关闭摄像头“;
            }
            else
            {
                picCamera.Image = null;
                btnOpen.Text = “开启摄像头“;
                isOpenCamera = false;
                myThread.Abort();
                myVideoCapture.Release();
            }
        }

        private void btnFaceDetect_Click(object sender EventArgs e)
        {
            isFaceDetect = true;
        }
        private void playVideo()
        {
            while (true)
            {
                Mat myframe = new Mat();
                myVideoCapture.Read(myframe);


                int sleepTime = (int)Math.Round(1000 / myVideoCapture.Fps);
                Cv2.WaitKey(sleepTime);
                if (myframe.Empty())
                {
                    continue;
                }
                Cv2.Flip(myframe myframe OpenCvSharp.FlipMode.Y);
                Rect myRect = new Rect(0 0 450 360);
                Mat newframe = new Mat(myframe myRect);
                if (isFaceDetect)
                {
                    faceDetect(newframe);
                }
                else
                {
                    picCamera.Image = newframe.ToBitmap();
                }
                myframe.Release();
            }
        }

        private void faceDetect(Mat src)
        {
            Mat grayImage = new Mat();
            Cv2.CvtColor(src grayImage ColorConversionCodes.BGR2GRAY);
            Cv2.EqualizeHist(grayImage grayImage);

            CascadeClassifier cascade = new CascadeClassifier(@“haarcascades\haarcascade_frontalface_alt.xml“);
            Rect[] faces = cascade.Dete

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11264  2019-08-26 14:09  FaceDetect\FaceDetect\FaceDetect\bin\Debug\FaceDetect.exe

     文件      22016  2019-08-26 14:09  FaceDetect\FaceDetect\FaceDetect\bin\Debug\FaceDetect.pdb

     文件      22472  2019-08-26 14:08  FaceDetect\FaceDetect\FaceDetect\bin\Debug\FaceDetect.vshost.exe

     文件        490  2015-07-10 19:01  FaceDetect\FaceDetect\FaceDetect\bin\Debug\FaceDetect.vshost.exe.manifest

     文件     341406  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_eye.xml

     文件     601661  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_eye_tree_eyeglasses.xml

     文件     411388  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_frontalcatface.xml

     文件     382918  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_frontalcatface_extended.xml

     文件     676709  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_frontalface_alt.xml

     文件     540616  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_frontalface_alt2.xml

     文件    2689040  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_frontalface_alt_tree.xml

     文件     930127  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_frontalface_default.xml

     文件     476827  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_fullbody.xml

     文件     195369  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_lefteye_2splits.xml

     文件      47775  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_licence_plate_rus_16stages.xml

     文件     395322  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_lowerbody.xml

     文件     828514  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_profileface.xml

     文件     196170  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_righteye_2splits.xml

     文件      75482  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_russian_plate_number.xml

     文件     188506  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_smile.xml

     文件     785819  2019-08-24 15:45  FaceDetect\FaceDetect\FaceDetect\bin\Debug\haarcascades\haarcascade_upperbody.xml

     文件      39424  2019-04-17 08:52  FaceDetect\FaceDetect\FaceDetect\bin\Debug\OpenCvSharp.Blob.dll

     文件     824832  2019-04-17 08:44  FaceDetect\FaceDetect\FaceDetect\bin\Debug\OpenCvSharp.dll

     文件      25088  2019-04-17 08:52  FaceDetect\FaceDetect\FaceDetect\bin\Debug\OpenCvSharp.Extensions.dll

     文件      12800  2019-04-17 08:52  FaceDetect\FaceDetect\FaceDetect\bin\Debug\OpenCvSharp.UserInterface.dll

     文件   60494848  2019-04-17 08:43  FaceDetect\FaceDetect\FaceDetect\bin\Debug\OpenCvSharpExtern.dll

     文件       4809  2019-08-26 13:14  FaceDetect\FaceDetect\FaceDetect\FaceDetect.csproj

     文件       4137  2019-08-26 14:09  FaceDetect\FaceDetect\FaceDetect\Form1.cs

     文件       3608  2019-08-26 13:30  FaceDetect\FaceDetect\FaceDetect\Form1.Designer.cs

     文件       5817  2019-08-26 13:30  FaceDetect\FaceDetect\FaceDetect\Form1.resx

............此处省略29个文件信息

评论

共有 条评论