-
使用OpenCV进行视频检测的一般步骤如下:导入OpenCV库和视频文件。
-
对每一个视频帧进行对象检测。可以使用诸如Haar特征分类器、Cascade分类器或深度学习模型等技术进行对象检测。
c
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/objdetect.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
CascadeClassifier faceCascade;
faceCascade.load("Resources/haarcascade_frontalface_default.xml");
if (faceCascade.empty()) { cout << "XML file not loaded" << endl; }
vector<Rect> faces; //用于存储检测到的面部区域。每个元素都是一个表示面部区域的矩形对象
//string path = "0";
VideoCapture cap("Resources/孤注一掷.mp4"); //视频捕捉对象
Mat img;
while (true) {
cap.read(img);
faceCascade.detectMultiScale(img, faces, 1.1, 10);
try
{
for (int i = 0; i < faces.size(); i++)
{
rectangle(img, faces[i].tl(), faces[i].br(), Scalar(255, 0, 255), 3);
}
imshow("Image", img);
waitKey(2);
}
catch (const exception& e)
{
destroyAllWindows();
break;
}
}
return 0;
imshow("Image", img);
waitKey(0);
return 0;
}