This is an example of how to use the ODHOGDetector class.More details about this example.
#include "detectors/global2D/detection/ODHOGDetector.h"
#include "common/utils/ODFrameGenerator.h"
#include "common/pipeline/ObjectDetector.h"
#include "common/pipeline/ODDetection.h"
using namespace od;
using namespace std;
cv::Size sizesingle(640, 480);
int main(int argc, char *argv[])
{
std::string trained_data_dir(argv[1]), input_video(argv[2]), output_video = "output.avi";
if (argc > 3) output_video = argv[3];
vector<string> messages; messages.push_back("Original");
vector<g2d::ODHOGDetector*> detectors;
messages.push_back("OpenCV Default People"); detectors.push_back(detector1);
messages.push_back("OpenCV Daimler People"); detectors.push_back(detector2);
messages.push_back("Custom HOG from trained data"); detectors.push_back(detector3);
for (int i = 0; i < detectors.size(); i++) detectors[i]->init();
od::ODFrameGenerator<od::ODSceneImage, od::GENERATOR_TYPE_DEVICE> frameGenerator(input_video);
cv::VideoWriter videoWriter(output_video, CV_FOURCC('M','J','P','G'), 25, sizesingle * 2, true);
cv::namedWindow("Overlay", cv::WINDOW_NORMAL);
while(frameGenerator.isValid() && cv::waitKey(33) != 27)
{
vector<cv::Mat> images_to_show;
for (int i = 0; i < detectors.size(); i++)
{
if(detections->
size() > 0)
else images_to_show.push_back(scene->
getCVImage());
}
cv::imshow("Overlay", multiimage);
videoWriter << multiimage;
delete scene;
}
return 0;
}