0
Ich bin ein Anfänger Programmierer. Meine Erfahrung ist sehr klein. Jetzt habe ich einen Code, um Leute zu erkennen. Ich benutze SVM-Klassifikator und einen HOG-Deskriptor. Das Video wird sehr lange geladen und verarbeitet. Bitte helfen Sie mir bei diesem Problem.Video sehr lange Zeit zu laden. Opencv
#include <assert.h>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <conio.h>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
string filename = "Street.MP4";
VideoCapture capture(filename);
Mat frame;
//namedWindow("w", 1);
while (true)
{
capture >> frame;
if (frame.empty())
break;
Mat img, res;
Mat framecopy = frame.clone();
resize(framecopy, img, Size(2 * framecopy.cols, 2 * framecopy.rows));
int nbins = 9;
Size cellSize(8, 8);
Size blockSize(16, 16);
Size blockStride(8, 8);
Size winSize(64, 128);
Size winStride(4, 4);
HOGDescriptor hog(winSize, blockSize, blockStride, cellSize, nbins);
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
assert(hog.checkDetectorSize());
vector<Rect> locations;
vector<double> weights;
hog.detectMultiScale(img, locations, weights, 0.0, winStride, Size(), 1.05, 2., true);
resize(img, res, Size(framecopy.cols/2, framecopy.rows/2));
for (size_t i = 0; i < locations.size(); ++i)
{
Rect detection = locations[i];
detection.x /= 2;
detection.y /= 2;
detection.width /= 2;
detection.height /= 2;
rectangle(res, detection, Scalar(0, 0, 255), 2);
}
imshow("w", res);
waitKey(20); // waits to display frame
}
waitKey();
return 0;
}
Danke für die Antwort! Aber sobald das Video für eine lange Zeit zu booten. Videoauflösung 640 * 360. –
Entschuldigung, ich verstehe nicht die Bedeutung Ihres Kommentars. Ist es schneller oder langsamer oder funktioniert es überhaupt nicht? – Micka
Keine Änderungen im Video. –