先说说如何配置(对于没有配置过的朋友)
网上大家都在发各种关于如何配置opencv的,什么保姆级教程,什么全网最详细,看这种东西让我吃尽了苦头。而我偏偏不走寻常路,给你们一个简单快捷的方式。用vs的人应该都知道.props文件的厉害,如果不知道的话请去看 VS2019保存props属性表并在新项目中导入props属性表_vs2019 props-CSDN博客
我把配置的props文件发出来
链接:https://pan.baidu.com/s/1ZE86jc9TvTUzXIxoDXqihQ?pwd=jasp
提取码:jasp
(前提是你把opencv主文件夹整个复制到源文件目录下)
这个props可能有问题,请看专栏中的另一篇文章查看正确版
这个props可能有问题,请看专栏中的另一篇文章查看正确版
这个props可能有问题,请看专栏中的另一篇文章查看正确版
(重要的事情说三遍)
看我人多好,凭这点,你们点赞收藏关注下呗
配置完之后,我们上代码,复制完代码别走,还有极其重要的内容!!!!!!
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/objdetect/face.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
/*********************************** 1.加载人脸检测器 ******************************/
// 建立级联分类器
CascadeClassifier cascade;
// 加载训练好的 人脸检测器(.xml)
// 注意路径问题,当前目录的上一个目录中的xml文件夹下
const string path = "人脸识别/haarcascade_frontalface_alt2.xml";
if (!cascade.load(path))
{
cout << "cascade load failed!\n";
return -1;
}
/******************************** 2.打开摄像头 ******************************/
VideoCapture capture(0);
if (!capture.isOpened())
{
cout << "failed to open camera!" << endl;
return -1;
}
// 创建窗口,用于显示最终结果
namedWindow("face_detect");
// 循环读取每一帧图像
while (true)
{
// 读取一帧图像
Mat frame;
capture >> frame;
if (frame.empty())
break;
//计时
double t = (double)getTickCount();
/*********************************** 3.人脸检测 ******************************/
vector<Rect> faces(0);
cascade.detectMultiScale(frame, faces, 1.1, 2, 0, Size(30, 30));
cout << "detect face number is :" << faces.size() << endl;
/******************************** 4.显示人脸矩形框 ******************************/
if (faces.size() > 0)
{
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(frame, faces[i], Scalar(150, 0, 0), 3, 8, 0);
}
}
else
cout << "未检测到人脸" << endl;
t = (double)getTickCount() - t;
cout << "检测人脸用时:" << t * 1000 / getTickFrequency() << "ms" << endl;
// 显示图像
imshow("face_detect", frame);
// 按下ESC键退出循环
if (waitKey(30) == 27)
break;
}
// 释放摄像头
capture.release();
// 销毁窗口
destroyAllWindows();
return 0;
}
哦,忘了一件事,找到opencv文件夹中的一下路径opencv\sources\data\haarcascades,把里头的所有xml文件全选复制,在main.cpp目录下新建文件夹,名为”人脸识别“,把那些xml文件粘贴进去