写一个结合OpenCV的人脸识别c++代码
时间: 2024-04-08 09:30:33 浏览: 86
当然,下面是一个简单的使用OpenCV进行人脸识别的C++代码示例:
```cpp
#include <opencv2/opencv.hpp>
int main()
{
// 加载人脸识别模型
cv::CascadeClassifier faceCascade;
faceCascade.load("haarcascade_frontalface_default.xml");
// 打开摄像头
cv::VideoCapture cap(0);
if (!cap.isOpened())
{
std::cout << "无法打开摄像头" << std::endl;
return -1;
}
while (true)
{
cv::Mat frame;
cap.read(frame);
// 将图像转为灰度图
cv::Mat gray;
cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY);
// 检测人脸
std::vector<cv::Rect> faces;
faceCascade.detectMultiScale(gray, faces, 1.1, 4);
// 绘制人脸框
for (const auto& face : faces)
{
cv::rectangle(frame, face, cv::Scalar(0, 255, 0), 2);
}
// 显示结果
cv::imshow("人脸识别", frame);
// 按下ESC键退出
if (cv::waitKey(1) == 27)
break;
}
// 释放摄像头和窗口
cap.release();
cv::destroyAllWindows();
return 0;
}
```
请确保在代码中的 `faceCascade.load("haarcascade_frontalface_default.xml");` 行中提供正确的人脸识别模型文件路径。这个模型文件可以从OpenCV官方网站下载。
这段代码会打开摄像头,并实时检测人脸并在图像中绘制人脸框。按下ESC键可以退出程序。
阅读全文