基于opencv的人脸识别c++代码
时间: 2023-07-24 07:20:14 浏览: 123
基于opencv的人脸识别c++程序
4星 · 用户满意度95%
以下是一个基于OpenCV的人脸识别C++代码的示例:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 加载人脸分类器
CascadeClassifier face_cascade;
face_cascade.load("haarcascade_frontalface_alt.xml");
// 打开摄像头
VideoCapture cap;
cap.open(0);
// 创建窗口
namedWindow("Face Detection", WINDOW_NORMAL);
while (true)
{
// 读取帧
Mat frame;
cap >> frame;
// 转换为灰度图像
Mat gray;
cvtColor(frame, gray, COLOR_BGR2GRAY);
// 检测人脸
vector<Rect> faces;
face_cascade.detectMultiScale(gray, faces, 1.1, 2, 0 | CASCADE_SCALE_IMAGE, Size(30, 30));
// 绘制人脸矩形
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(frame, faces[i], Scalar(0, 0, 255), 2);
}
// 显示结果
imshow("Face Detection", frame);
// 等待按键
if (waitKey(30) == 27)
{
break;
}
}
return 0;
}
```
该代码通过OpenCV库实现了人脸检测功能。首先,它加载了一个经过训练的人脸分类器(`CascadeClassifier`)来检测图像中的人脸。然后,它打开摄像头并读取每一帧图像。将每一帧转换为灰度图像,然后在其中检测人脸。最后,它在图像上绘制人脸矩形并显示结果。如果按下ESC键,则停止程序。
阅读全文