.NetCore——基于OpenCV人脸检测
一、介绍
在.NetCore中,基于OpenCV实现对静态图片的人脸识别,检测人脸是否存在,且存在的数量。注: 不能自动学习人脸特征。
二、使用
首先引入包
然后在github中搜索OpenCV下载
在 opencv-master\data\haarcascades 下找到 haarcascade_frontalface_default.xml 文件放到项目文件夹,这是个人脸特征库
准备工作做好就要开始进行实操了,可以具体看代码注释。
注:文件路径根据自己实际情况做修改
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控制台程序
下一章会是相关类型的一些别的处理