Qt C++使用YOLOV2模型实时检测摄像头视频中的车辆的源代码(CPU检测)
一、主函数
#include <QApplication>
#include <opencv2/opencv.hpp>
#include "dnnvehicledetectclass.h"
using namespace cv;
using namespace std;
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
DnnVehicleDetectClass dnn;
VideoCapture cap("rtsp://admin:admin123@192.168.1.108:554/cam/realmonitor?channel=1&subtype=1");
if (!cap.isOpened()) {
cerr << "Failed to open video stream!" << endl;
return -1;
}
Mat frame;
while (true) {
cap.read(frame);
if (frame.empty()) {
cerr << "Failed to read frame from video stream!" << endl;
break;
}
dnn.dnnVehicleDetect(frame);
imshow("Frame", frame);
// Check for ESC key press
if (waitKey(30) == 27) {
// 使用 30 毫秒延迟
break;
}
}
// Release resources
cap.release();
destroyAllWindows();
return 0;
}
#include "main.moc"
二、 DnnVehicleDetectClass的头文件
#ifndef DNNVEHICLEDETECTCLASS_H
#define DNNVEHICLEDETECTCLASS_H
#include <QDir>
#include <QString>
#include <QDebug>
#include <QTimer>
#include <direct.h>
#include <QThread>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
class DnnVehicleDetectClass: public QThread {
Q_OBJECT
public:
DnnVehicleDetectClass()