Skip to content

Commit db22d2a

Browse files
committed
add support to Opencv4.5.2
1 parent 407c787 commit db22d2a

23 files changed

+230
-25
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env:
1010
- OPENCV4NODEJS_DISABLE_AUTOBUILD=1
1111
- LATEST_STABLE_NODEJS_VERSION=12
1212
- OPENCV3_LATEST=3.4.6
13-
- OPENCV4_LATEST=4.4.0
13+
- OPENCV4_LATEST=4.5.2
1414

1515
matrix:
1616
include:

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ init:
1515
# what combinations to test
1616
environment:
1717
OPENCV3_LATEST: 3.4.6
18-
OPENCV4_LATEST: 4.4.0
18+
OPENCV4_LATEST: 4.5.2
1919
PYTHON_VERSION: 2.7
2020
PYTHON: "C:\\Python27-x64"
2121
# use self build

cc/tracking/MultiTracker.cc

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

cc/tracking/MultiTracker.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#include "macros.h"
22
#include <opencv2/tracking.hpp>
3+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
4+
#include <opencv2/tracking/tracking_legacy.hpp>
5+
#endif
36
#include "Mat.h"
47
#include "Rect.h"
58

@@ -8,7 +11,11 @@
811
#ifndef __FF_MULTITRACKER_H__
912
#define __FF_MULTITRACKER_H__
1013

14+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
15+
class MultiTracker : public FF::ObjectWrap<MultiTracker, cv::Ptr<cv::legacy::MultiTracker>> {
16+
#else
1117
class MultiTracker : public FF::ObjectWrap<MultiTracker, cv::Ptr<cv::MultiTracker>> {
18+
#endif
1219
public:
1320
static Nan::Persistent<v8::FunctionTemplate> constructor;
1421

@@ -31,4 +38,4 @@ class MultiTracker : public FF::ObjectWrap<MultiTracker, cv::Ptr<cv::MultiTracke
3138

3239
#endif
3340

34-
#endif
41+
#endif

cc/tracking/Tracker.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#include "macros.h"
22
#include <opencv2/tracking.hpp>
3+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
4+
#include <opencv2/tracking/tracking_legacy.hpp>
5+
#endif
36
#include "Mat.h"
47
#include "Rect.h"
58

@@ -8,7 +11,11 @@
811

912
class Tracker : public FF::ObjectWrapBase<Tracker>, public Nan::ObjectWrap {
1013
public:
14+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
15+
virtual cv::Ptr<cv::legacy::Tracker> getTracker() = 0;
16+
#else
1117
virtual cv::Ptr<cv::Tracker> getTracker() = 0;
18+
#endif
1219

1320
static void Init(v8::Local<v8::FunctionTemplate>);
1421

@@ -18,4 +25,4 @@ class Tracker : public FF::ObjectWrapBase<Tracker>, public Nan::ObjectWrap {
1825
static NAN_METHOD(GetModel);
1926
};
2027

21-
#endif
28+
#endif

cc/tracking/Trackers/TrackerBoosting.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,19 @@ NAN_METHOD(TrackerBoosting::New) {
2626
FF::TryCatch tryCatch("TrackerBoosting::New");
2727
FF_ASSERT_CONSTRUCT_CALL();
2828

29+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
30+
cv::legacy::TrackerBoosting::Params params;
31+
#else
2932
cv::TrackerBoosting::Params params;
33+
#endif
3034
if (TrackerBoostingParams::Converter::optArg(0, &params, info)) {
3135
return tryCatch.reThrow();
3236
}
3337

3438
TrackerBoosting* self = new TrackerBoosting();
35-
#if CV_VERSION_GREATER_EQUAL(3, 3, 0)
39+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
40+
self->tracker = cv::legacy::TrackerBoosting::create(params);
41+
#elif CV_VERSION_GREATER_EQUAL(3, 3, 0)
3642
self->tracker = cv::TrackerBoosting::create(params);
3743
#else
3844
self->tracker = cv::TrackerBoosting::createTracker(params);

cc/tracking/Trackers/TrackerBoosting.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,24 @@
55

66
class TrackerBoosting : public Tracker {
77
public:
8+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
9+
cv::Ptr<cv::legacy::TrackerBoosting> tracker;
10+
#else
811
cv::Ptr<cv::TrackerBoosting> tracker;
12+
#endif
913

1014
static NAN_MODULE_INIT(Init);
1115
static NAN_METHOD(New);
1216

1317
static Nan::Persistent<v8::FunctionTemplate> constructor;
1418

19+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
20+
cv::Ptr<cv::legacy::Tracker> getTracker() {
21+
#else
1522
cv::Ptr<cv::Tracker> getTracker() {
23+
#endif
1624
return tracker;
1725
}
1826
};
1927

20-
#endif
28+
#endif

cc/tracking/Trackers/TrackerBoostingParams.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ NAN_METHOD(TrackerBoostingParams::New) {
2828
FF::TryCatch tryCatch("TrackerBoostingParams::New");
2929
FF_ASSERT_CONSTRUCT_CALL();
3030
TrackerBoostingParams* self = new TrackerBoostingParams();
31+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
32+
self->self = cv::legacy::TrackerBoosting::Params();
33+
#else
3134
self->self = cv::TrackerBoosting::Params();
35+
#endif
3236
self->Wrap(info.Holder());
3337
info.GetReturnValue().Set(info.Holder());
3438
};

cc/tracking/Trackers/TrackerBoostingParams.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
#include "macros.h"
22
#include <opencv2/tracking.hpp>
3+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
4+
#include <opencv2/tracking/tracking_legacy.hpp>
5+
#endif
36

47
#ifndef __FF_TRACKERBOOSTINGPARAMS_H__
58
#define __FF_TRACKERBOOSTINGPARAMS_H__
69

10+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
11+
class TrackerBoostingParams : public FF::ObjectWrap<TrackerBoostingParams, cv::legacy::TrackerBoosting::Params> {
12+
#else
713
class TrackerBoostingParams : public FF::ObjectWrap<TrackerBoostingParams, cv::TrackerBoosting::Params> {
14+
#endif
815
public:
916
static Nan::Persistent<v8::FunctionTemplate> constructor;
1017

@@ -22,4 +29,4 @@ class TrackerBoostingParams : public FF::ObjectWrap<TrackerBoostingParams, cv::T
2229
FF_ACCESSORS(featureSetNumFeatures, FF::IntConverter);
2330
};
2431

25-
#endif
32+
#endif

cc/tracking/Trackers/TrackerCSRT.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,21 @@ NAN_METHOD(TrackerCSRT::New) {
2828
FF::TryCatch tryCatch("TrackerCSRT::New");
2929
FF_ASSERT_CONSTRUCT_CALL();
3030

31+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
32+
cv::legacy::TrackerCSRT::Params params;
33+
#else
3134
cv::TrackerCSRT::Params params;
35+
#endif
3236
if (TrackerCSRTParams::Converter::optArg(0, &params, info)) {
3337
return tryCatch.reThrow();
3438
}
3539

3640
TrackerCSRT* self = new TrackerCSRT();
41+
#if CV_VERSION_GREATER_EQUAL(4, 5, 2)
42+
self->tracker = cv::legacy::TrackerCSRT::create(params);
43+
#else
3744
self->tracker = cv::TrackerCSRT::create(params);
45+
#endif
3846
self->Wrap(info.Holder());
3947
info.GetReturnValue().Set(info.Holder());
4048
};

0 commit comments

Comments
 (0)