.NetCore——基于OpenCV人脸检测

.NetCore——基于OpenCV人脸检测

一、介绍

在.NetCore中,基于OpenCV实现对静态图片的人脸识别,检测人脸是否存在,且存在的数量。注: 不能自动学习人脸特征

二、使用

首先引入包
.NetCore——基于OpenCV人脸检测_第1张图片
然后在github中搜索OpenCV下载
.NetCore——基于OpenCV人脸检测_第2张图片
opencv-master\data\haarcascades 下找到 haarcascade_frontalface_default.xml 文件放到项目文件夹,这是个人脸特征库

准备工作做好就要开始进行实操了,可以具体看代码注释。
.NetCore——基于OpenCV人脸检测_第3张图片
注:文件路径根据自己实际情况做修改

public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            //人脸特征库 github OpenCV下载下来复制 否则会有问题
            //实例检测的级联分类器类
            CascadeClassifier face_cascade = new CascadeClassifier(@"\FaceDetection\haarcascade_frontalface_default.xml");

            //测试图片
            Mat image = Cv2.ImRead(@"\FaceDetection\1.jpg");

            //灰度图片
            Mat newImage = new Mat();

            // 转换为灰度图
            Cv2.CvtColor(image, newImage, ColorConversionCodes.BGR2GRAY);

            // 调用人脸检测器检测
            var faces = face_cascade.DetectMultiScale(newImage, 1.3, 10, HaarDetectionTypes.DoCannyPruning);

            if (faces.Length < 1)
                Console.WriteLine($"没有检测到人脸");

            if (faces.Length > 1)
                Console.WriteLine($"检测到多张人脸");
        }

这就结束了。感兴趣的可以自己去尝试一下。如果项目要求特别高,这个方法是不推荐的。

环境:.net5控制台程序

下一章会是相关类型的一些别的处理

你可能感兴趣的:(.netCore日常使用,opencv,c#)