filter->y = DEFAULT_PROP_INITIAL_Y;
filter->width = DEFAULT_PROP_INITIAL_WIDTH;
filter->height = DEFAULT_PROP_INITIAL_HEIGHT;
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
filter->tracker = cv::legacy::upgradeTrackingAPI(
cv::legacy::TrackerMedianFlow::create());
#else
{
switch (filter->algorithm) {
case GST_OPENCV_TRACKER_ALGORITHM_BOOSTING:
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
filter->tracker = cv::legacy::upgradeTrackingAPI(
cv::legacy::TrackerBoosting::create());
#else
filter->tracker = cv::TrackerKCF::create ();
break;
case GST_OPENCV_TRACKER_ALGORITHM_MEDIANFLOW:
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
filter->tracker = cv::legacy::upgradeTrackingAPI(
cv::legacy::TrackerMedianFlow::create());
#else
filter->tracker = cv::TrackerMIL::create ();
break;
case GST_OPENCV_TRACKER_ALGORITHM_MOSSE:
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
filter->tracker = cv::legacy::upgradeTrackingAPI(
cv::legacy::TrackerMOSSE::create());
#else
#endif
break;
case GST_OPENCV_TRACKER_ALGORITHM_TLD:
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
filter->tracker = cv::legacy::upgradeTrackingAPI(
cv::legacy::TrackerTLD::create());
#else
GstMessage *msg;
if (filter->roi.empty ()) {
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
filter->roi = new (cv::Rect);
#else
filter->roi = new (cv::Rect2d);
create_cvtracker (filter);
filter->tracker->init (img, *filter->roi);
} else if (filter->tracker->update (img, *filter->roi)) {
-#if (!(CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1))
+#if !GST_OPENCV_CHECK_VERSION(4, 5, 1)
/* Round values to avoid inconsistencies depending on the OpenCV version. */
filter->roi->x = cvRound (filter->roi->x);
filter->roi->y = cvRound (filter->roi->y);
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/tracking.hpp>
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+
+#define GST_OPENCV_CHECK_VERSION(major,minor,revision) \
+ (CV_VERSION_MAJOR > (major) || \
+ (CV_VERSION_MAJOR == (major) && CV_VERSION_MINOR > (minor)) || \
+ (CV_VERSION_MAJOR == (major) && CV_VERSION_MINOR == (minor) && \
+ CV_VERSION_REVISION >= (revision)))
+
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
#include <opencv2/tracking/tracking_legacy.hpp>
#endif
gboolean post_debug_info;
cv::Ptr<cv::Tracker> tracker;
-#if CV_VERSION_MAJOR == 4 && CV_VERSION_MINOR >= 5 && CV_VERSION_REVISION >= 1
+#if GST_OPENCV_CHECK_VERSION(4, 5, 1)
cv::Ptr<cv::Rect> roi;
#else
cv::Ptr<cv::Rect2d> roi;