44
44
#include < sensor_msgs/image_encodings.h>
45
45
46
46
#include < opencv2/tracking.hpp>
47
+ // Since 4.5.1, tracking has new API https://github.com/opencv/opencv_contrib/pull/2737
48
+ #if (CV_VERSION_MAJOR >= 4 && CV_VERSION_MINOR >= 5)
49
+ #include < opencv2/tracking/tracking_legacy.hpp>
50
+ using namespace cv ::legacy;
51
+ #define TrackingAPI (f ) upgradeTrackingAPI(f)
52
+ #else
53
+ using namespace cv ;
54
+ #define TrackingAPI (f ) f
55
+ #endif
47
56
#include < opencv2/highgui/highgui.hpp>
48
57
#include < opencv2/imgproc/imgproc.hpp>
49
58
@@ -85,7 +94,9 @@ class TrackingNodelet : public opencv_apps::Nodelet
85
94
int tracking_algorithm_;
86
95
87
96
cv::Ptr <cv::Tracker> tracker_;
88
- cv::TrackerKCF::Params params_;
97
+ #if (CV_VERSION_MAJOR >= 4 && CV_VERSION_MINOR >= 5)
98
+ #define Rect2d Rect
99
+ #endif
89
100
cv::Rect2d roi_;
90
101
91
102
public:
@@ -240,19 +251,19 @@ class TrackingNodelet : public opencv_apps::Nodelet
240
251
ROS_INFO (" Create MIL (Multiple Instance Learning) tracker" );
241
252
break ;
242
253
case opencv_apps::Tracking_BOOSTING:
243
- tracker_ = cv:: TrackerBoosting::create ();
254
+ tracker_ = TrackingAPI ( TrackerBoosting::create () );
244
255
ROS_INFO (" Create On-line version of the AdaBoost tracker" );
245
256
break ;
246
257
case opencv_apps::Tracking_MEDIANFLOW:
247
- tracker_ = cv:: TrackerMedianFlow::create ();
258
+ tracker_ = TrackingAPI ( TrackerMedianFlow::create () );
248
259
ROS_INFO (" Create Median Flow tracker" );
249
260
break ;
250
261
case opencv_apps::Tracking_TLD:
251
- tracker_ = cv:: TrackerTLD::create ();
262
+ tracker_ = TrackingAPI ( TrackerTLD::create () );
252
263
ROS_INFO (" Create TLD (Tracking, learning and detection) tracker" );
253
264
break ;
254
265
case opencv_apps::Tracking_KCF:
255
- tracker_ = cv::TrackerKCF::create (params_ );
266
+ tracker_ = cv::TrackerKCF::create ();
256
267
ROS_INFO (" Create KCF (Kernelized Correlation Filter) tracker" );
257
268
break ;
258
269
case opencv_apps::Tracking_GOTURN:
@@ -278,7 +289,7 @@ class TrackingNodelet : public opencv_apps::Nodelet
278
289
}
279
290
break ;
280
291
case opencv_apps::Tracking_MOSSE:
281
- tracker_ = cv:: TrackerMOSSE::create ();
292
+ tracker_ = TrackingAPI ( TrackerMOSSE::create () );
282
293
ROS_INFO (" Create MOSSE (Minimum Output Sum of Squared Error) tracker" );
283
294
break ;
284
295
}
0 commit comments