From 04a5bb2e8cd815d36b49a4fd121f317073e8ec36 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Tue, 5 Dec 2023 17:31:35 +0100 Subject: [PATCH] Fix swapImage and other related code --- .../WebARKitOpticalTracking/WebARKitTracker.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp b/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp index 7db631b..5bee56e 100644 --- a/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp +++ b/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp @@ -162,7 +162,6 @@ class WebARKitTracker::WebARKitTrackerImpl { _isDetected = true; numMatches = framePts.size(); perspectiveTransform(_bBox, _bBoxTransformed, m_H); - swapImagePyramid(); } } } @@ -176,11 +175,6 @@ class WebARKitTracker::WebARKitTrackerImpl { return NULL; } - if (_prevPyramid.empty()) { - WEBARKIT_LOGe("Tracking is uninitialized!\n"); - return NULL; - } - WEBARKIT_LOGi("Start tracking!\n"); clear_output(); @@ -244,7 +238,7 @@ class WebARKitTracker::WebARKitTrackerImpl { } } - swapImagePyramid(); + //swapImagePyramid(); return valid; }; @@ -255,6 +249,7 @@ class WebARKitTracker::WebARKitTrackerImpl { } else { this->_valid = track(); } + swapImagePyramid(); }; bool homographyValid(cv::Mat& H) { @@ -293,11 +288,11 @@ class WebARKitTracker::WebARKitTrackerImpl { output = std::vector(17, 0.0); }; - void buildImagePyramid(cv::Mat frame) { cv::buildOpticalFlowPyramid(frame, _pyramid, winSize, maxLevel); } + void buildImagePyramid(cv::Mat& frame) { cv::buildOpticalFlowPyramid(frame, _pyramid, winSize, maxLevel); } void swapImagePyramid() { _pyramid.swap(_prevPyramid); } - cv::Mat createTrackerFeatureMask(cv::Mat frame) { + cv::Mat createTrackerFeatureMask(cv::Mat& frame) { cv::Mat featureMask; if (featureMask.empty()) { // Only create mask if we have something to draw in it. @@ -310,7 +305,7 @@ class WebARKitTracker::WebARKitTrackerImpl { return featureMask; } - cv::Mat createFeatureMask(cv::Mat frame) { + cv::Mat createFeatureMask(cv::Mat& frame) { cv::Mat featureMask; if (_isDetected) { if (featureMask.empty()) {