MCPcopy Create free account
hub / github.com/Smorodov/Multitarget-tracker / CreateDetector

Method CreateDetector

src/Detector/BaseDetector.cpp:20–94  ·  view source on GitHub ↗

\brief CreateDetector \param detectorType \param gray \return

Source from the content-addressed store, hash-verified

18/// \return
19///
20std::unique_ptr<BaseDetector> BaseDetector::CreateDetector(tracking::Detectors detectorType,
21 const config_t& config,
22 const cv::UMat& frame)
23{
24 std::unique_ptr<BaseDetector> detector;
25
26 switch (detectorType)
27 {
28 case tracking::Motion_VIBE:
29 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_VIBE, frame);
30 break;
31
32 case tracking::Motion_MOG:
33 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_MOG, frame);
34 break;
35
36 case tracking::Motion_GMG:
37 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_GMG, frame);
38 break;
39
40 case tracking::Motion_CNT:
41 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_CNT, frame);
42 break;
43
44 case tracking::Motion_SuBSENSE:
45 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_SuBSENSE, frame);
46 break;
47
48 case tracking::Motion_LOBSTER:
49 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_LOBSTER, frame);
50 break;
51
52 case tracking::Motion_MOG2:
53 detector = std::make_unique<MotionDetector>(BackgroundSubtract::BGFG_ALGS::ALG_MOG2, frame);
54 break;
55
56 case tracking::Face_HAAR:
57 detector = std::make_unique<FaceDetector>(frame);
58 break;
59
60 case tracking::Pedestrian_HOG:
61 case tracking::Pedestrian_C4:
62 detector = std::make_unique<PedestrianDetector>(frame);
63 break;
64
65#ifdef USE_OCV_DNN
66 case tracking::DNN_OCV:
67 detector = std::make_unique<OCVDNNDetector>(frame);
68 break;
69#endif
70
71 case tracking::Yolo_Darknet:
72#ifdef BUILD_YOLO_LIB
73 detector = std::make_unique<YoloDarknetDetector>(frame);
74#else
75 std::cerr << "Darknet inference engine was not configured in CMake" << std::endl;
76#endif
77 break;

Callers

nothing calls this directly

Calls 2

InitMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected