opencv视频文件人脸检测c++代码
时间: 2024-05-23 22:08:54 浏览: 128
当你想要在一个视频文件中进行人脸检测时,可以使用OpenCV库。 OpenCV是一个广泛使用的计算机视觉库,提供了许多预先实现的算法和函数,其中包括人脸检测。下面是一个简单的C++代码示例,演示如何使用OpenCV进行视频文件中的人脸检测:
```
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 打开视频文件
VideoCapture cap("video.mp4");
// 加载人脸检测分类器
CascadeClassifier face_cascade;
face_cascade.load("haarcascade_frontalface_alt.xml");
// 循环读取视频帧
while (cap.isOpened())
{
Mat frame;
cap >> frame;
// 转换为灰度图像
Mat gray;
cvtColor(frame, gray, COLOR_BGR2GRAY);
// 检测人脸
std::vector<Rect> faces;
face_cascade.detectMultiScale(gray, faces);
// 在每个人脸周围画一个矩形
for (size_t i = 0; i < faces.size(); i++)
{
rectangle(frame, faces[i], Scalar(0, 255, 0), 2);
}
// 显示结果
imshow("Video", frame);
// 等待按键或者退出
if (waitKey(1) == 27)
break;
}
return 0;
}
```
在上面的代码中,首先打开了一个视频文件,并加载了OpenCV自带的人脸检测分类器。然后循环读取每一帧视频,并将其转换为灰度图像。接下来使用分类器检测人脸,并在每个检测到的人脸周围画一个矩形。最后将结果显示在屏幕上,并等待按键或退出。
阅读全文