Skip to content

Commit fa09e2e

Browse files
committed
OpenCV 4.5 introduced new API for tracking, see opencv/opencv_contrib#2737
1 parent 8ee62d2 commit fa09e2e

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

src/nodelet/tracking_nodelet.cpp

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@
4444
#include <sensor_msgs/image_encodings.h>
4545

4646
#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
4756
#include <opencv2/highgui/highgui.hpp>
4857
#include <opencv2/imgproc/imgproc.hpp>
4958

@@ -85,7 +94,9 @@ class TrackingNodelet : public opencv_apps::Nodelet
8594
int tracking_algorithm_;
8695

8796
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
89100
cv::Rect2d roi_;
90101

91102
public:
@@ -240,19 +251,19 @@ class TrackingNodelet : public opencv_apps::Nodelet
240251
ROS_INFO("Create MIL (Multiple Instance Learning) tracker");
241252
break;
242253
case opencv_apps::Tracking_BOOSTING:
243-
tracker_ = cv::TrackerBoosting::create();
254+
tracker_ = TrackingAPI(TrackerBoosting::create());
244255
ROS_INFO("Create On-line version of the AdaBoost tracker");
245256
break;
246257
case opencv_apps::Tracking_MEDIANFLOW:
247-
tracker_ = cv::TrackerMedianFlow::create();
258+
tracker_ = TrackingAPI(TrackerMedianFlow::create());
248259
ROS_INFO("Create Median Flow tracker");
249260
break;
250261
case opencv_apps::Tracking_TLD:
251-
tracker_ = cv::TrackerTLD::create();
262+
tracker_ = TrackingAPI(TrackerTLD::create());
252263
ROS_INFO("Create TLD (Tracking, learning and detection) tracker");
253264
break;
254265
case opencv_apps::Tracking_KCF:
255-
tracker_ = cv::TrackerKCF::create(params_);
266+
tracker_ = cv::TrackerKCF::create();
256267
ROS_INFO("Create KCF (Kernelized Correlation Filter) tracker");
257268
break;
258269
case opencv_apps::Tracking_GOTURN:
@@ -278,7 +289,7 @@ class TrackingNodelet : public opencv_apps::Nodelet
278289
}
279290
break;
280291
case opencv_apps::Tracking_MOSSE:
281-
tracker_ = cv::TrackerMOSSE::create();
292+
tracker_ = TrackingAPI(TrackerMOSSE::create());
282293
ROS_INFO("Create MOSSE (Minimum Output Sum of Squared Error) tracker");
283294
break;
284295
}

0 commit comments

Comments
 (0)