人脸识别程序C++代码
时间: 2023-10-30 09:08:48 浏览: 82
以下是一个简单的人脸识别程序的C++代码,使用OpenCV库。
```c++
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
// 加载训练好的分类器
CascadeClassifier face_cascade;
if (!face_cascade.load("haarcascade_frontalface_alt.xml"))
{
cout << "Error loading face cascade!" << endl;
return -1;
}
// 打开摄像头
VideoCapture cap(0);
if (!cap.isOpened())
{
cout << "Error opening camera!" << endl;
return -1;
}
while (true)
{
Mat frame;
cap >> frame;
if (frame.empty())
{
break;
}
// 转换成灰度图像
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, 255, 0), 2);
}
// 显示结果
imshow("Face Detection", frame);
// 按下ESC键退出程序
if (waitKey(10) == 27)
{
break;
}
}
return 0;
}
```
该程序使用Haar级联分类器来检测人脸,相关训练文件可以在OpenCV官方网站上下载。程序打开摄像头,并不断地获取帧,将每一帧转换成灰度图像,然后在图像中检测人脸并用矩形框标出。最后,程序显示结果并等待用户按下ESC键退出程序。
阅读全文