|
Lines 25-31
Link Here
|
| 25 |
typedef struct |
25 |
typedef struct |
| 26 |
{ |
26 |
{ |
| 27 |
cv::Ptr<cv::Tracker> tracker; |
27 |
cv::Ptr<cv::Tracker> tracker; |
|
|
28 |
#if CV_VERSION_MAJOR < 4 && CV_VERSION_MINOR < 5 |
| 28 |
cv::Rect2d boundingBox; |
29 |
cv::Rect2d boundingBox; |
|
|
30 |
#else |
| 31 |
cv::Rect boundingBox; |
| 32 |
#endif |
| 29 |
char * algo; |
33 |
char * algo; |
| 30 |
mlt_rect startRect; |
34 |
mlt_rect startRect; |
| 31 |
bool initialized; |
35 |
bool initialized; |
|
Lines 138-144
static void analyze( mlt_filter filter, cv::Mat cvFrame, private_data* data, int
Link Here
|
| 138 |
{ |
142 |
{ |
| 139 |
data->tracker = cv::TrackerKCF::create(); |
143 |
data->tracker = cv::TrackerKCF::create(); |
| 140 |
} |
144 |
} |
| 141 |
#if CV_VERSION_MAJOR > 3 || (CV_VERSION_MAJOR == 3 && CV_VERSION_MINOR >= 4 && CV_VERSION_REVISION >= 2) |
145 |
#if (CV_VERSION_MAJOR > 3 && CV_VERSION_MAJOR < 4 && CV_VERSION_MINOR < 5) || (CV_VERSION_MAJOR == 3 && CV_VERSION_MINOR >= 4 && CV_VERSION_REVISION >= 2) |
| 142 |
else if ( !strcmp(data->algo, "CSRT" ) ) |
146 |
else if ( !strcmp(data->algo, "CSRT" ) ) |
| 143 |
{ |
147 |
{ |
| 144 |
data->tracker = cv::TrackerCSRT::create(); |
148 |
data->tracker = cv::TrackerCSRT::create(); |
|
Lines 152-157
static void analyze( mlt_filter filter, cv::Mat cvFrame, private_data* data, int
Link Here
|
| 152 |
{ |
156 |
{ |
| 153 |
data->tracker = cv::TrackerMIL::create(); |
157 |
data->tracker = cv::TrackerMIL::create(); |
| 154 |
} |
158 |
} |
|
|
159 |
#if CV_VERSION_MAJOR < 4 && CV_VERSION_MINOR < 5 |
| 155 |
else if ( !strcmp(data->algo, "TLD" ) ) |
160 |
else if ( !strcmp(data->algo, "TLD" ) ) |
| 156 |
{ |
161 |
{ |
| 157 |
data->tracker = cv::TrackerTLD::create(); |
162 |
data->tracker = cv::TrackerTLD::create(); |
|
Lines 160-165
static void analyze( mlt_filter filter, cv::Mat cvFrame, private_data* data, int
Link Here
|
| 160 |
{ |
165 |
{ |
| 161 |
data->tracker = cv::TrackerBoosting::create(); |
166 |
data->tracker = cv::TrackerBoosting::create(); |
| 162 |
} |
167 |
} |
|
|
168 |
#endif // CV_VERSION_MAJOR < 4 && CV_VERSION_MINOR < 5 |
| 163 |
#else |
169 |
#else |
| 164 |
if ( data->algo == NULL || !strcmp(data->algo, "" ) ) |
170 |
if ( data->algo == NULL || !strcmp(data->algo, "" ) ) |
| 165 |
{ |
171 |
{ |
|
Lines 224-230
static void analyze( mlt_filter filter, cv::Mat cvFrame, private_data* data, int
Link Here
|
| 224 |
if ( data->boundingBox.height <1 ) { |
230 |
if ( data->boundingBox.height <1 ) { |
| 225 |
data->boundingBox.height = 50; |
231 |
data->boundingBox.height = 50; |
| 226 |
} |
232 |
} |
|
|
233 |
#if CV_VERSION_MAJOR < 4 && CV_VERSION_MINOR < 5 |
| 227 |
if ( data->tracker->init( cvFrame, data->boundingBox ) ) { |
234 |
if ( data->tracker->init( cvFrame, data->boundingBox ) ) { |
|
|
235 |
#else |
| 236 |
{ |
| 237 |
data->tracker->init( cvFrame, data->boundingBox ); |
| 238 |
#endif |
| 228 |
data->initialized = true; |
239 |
data->initialized = true; |
| 229 |
data->analyze = true; |
240 |
data->analyze = true; |
| 230 |
data->last_position = position - 1; |
241 |
data->last_position = position - 1; |