@@ -36,7 +36,11 @@ NAN_METHOD(MultiTracker::New) {
3636 FF::TryCatch tryCatch (" MultiTracker::New" );
3737 FF_ASSERT_CONSTRUCT_CALL ();
3838 MultiTracker* self = new MultiTracker ();
39+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
40+ self->setNativeObject (cv::makePtr<cv::legacy::MultiTracker>());
41+ #else
3942 self->setNativeObject (cv::makePtr<cv::MultiTracker>());
43+ #endif
4044 self->Wrap (info.Holder ());
4145 info.GetReturnValue ().Set (info.Holder ());
4246};
@@ -51,7 +55,9 @@ NAN_METHOD(MultiTracker::AddMIL) {
5155 ) {
5256 return tryCatch.reThrow ();
5357 }
54- #if CV_VERSION_GREATER_EQUAL(3, 3, 0)
58+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
59+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerMIL::create ();
60+ #elif CV_VERSION_GREATER_EQUAL(3, 3, 0)
5561 cv::Ptr<cv::Tracker> type = cv::TrackerMIL::create ();
5662#else
5763 const std::string type (" MIL" );
@@ -70,7 +76,9 @@ NAN_METHOD(MultiTracker::AddBOOSTING) {
7076 ) {
7177 return tryCatch.reThrow ();
7278 }
73- #if CV_VERSION_GREATER_EQUAL(3, 3, 0)
79+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
80+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerBoosting::create ();
81+ #elif CV_VERSION_GREATER_EQUAL(3, 3, 0)
7482 cv::Ptr<cv::Tracker> type = cv::TrackerBoosting::create ();
7583#else
7684 const std::string type (" BOOSTING" );
@@ -89,7 +97,9 @@ NAN_METHOD(MultiTracker::AddMEDIANFLOW) {
8997 ) {
9098 return tryCatch.reThrow ();
9199 }
92- #if CV_VERSION_GREATER_EQUAL(3, 3, 0)
100+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
101+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerMedianFlow::create ();
102+ #elif CV_VERSION_GREATER_EQUAL(3, 3, 0)
93103 cv::Ptr<cv::Tracker> type = cv::TrackerMedianFlow::create ();
94104#else
95105 const std::string type (" MEDIANFLOW" );
@@ -108,7 +118,9 @@ NAN_METHOD(MultiTracker::AddTLD) {
108118 ) {
109119 return tryCatch.reThrow ();
110120 }
111- #if CV_VERSION_GREATER_EQUAL(3, 3, 0)
121+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
122+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerTLD::create ();
123+ #elif CV_VERSION_GREATER_EQUAL(3, 3, 0)
112124 cv::Ptr<cv::Tracker> type = cv::TrackerTLD::create ();
113125#else
114126 const std::string type (" TLD" );
@@ -127,7 +139,9 @@ NAN_METHOD(MultiTracker::AddKCF) {
127139 ) {
128140 return tryCatch.reThrow ();
129141 }
130- #if CV_VERSION_GREATER_EQUAL(3, 3, 0)
142+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
143+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerKCF::create ();
144+ #elif CV_VERSION_GREATER_EQUAL(3, 3, 0)
131145 cv::Ptr<cv::Tracker> type = cv::TrackerKCF::create ();
132146#else
133147 const std::string type (" KCF" );
@@ -159,7 +173,11 @@ NAN_METHOD(MultiTracker::AddMOSSE) {
159173 ) {
160174 return tryCatch.reThrow ();
161175 }
176+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
177+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerMOSSE::create ();
178+ #else
162179 cv::Ptr<cv::Tracker> type = cv::TrackerMOSSE::create ();
180+ #endif
163181 bool ret = MultiTracker::unwrapSelf (info)->add (type, image, boundingBox);
164182 info.GetReturnValue ().Set (Nan::New (ret));
165183}
@@ -177,7 +195,11 @@ NAN_METHOD(MultiTracker::AddCSRT) {
177195 ) {
178196 return tryCatch.reThrow ();
179197 }
198+ #if CV_VERSION_GREATER_EQUAL(4, 5, 2)
199+ cv::Ptr<cv::legacy::Tracker> type = cv::legacy::TrackerCSRT::create ();
200+ #else
180201 cv::Ptr<cv::Tracker> type = cv::TrackerCSRT::create ();
202+ #endif
181203 bool ret = MultiTracker::unwrapSelf (info)->add (type, image, boundingBox);
182204 info.GetReturnValue ().Set (Nan::New (ret));
183205}
0 commit comments