Skip to content

Commit 6c3d0c6

Browse files
committed
some cout's for debugging and provide
cv::Mat as reference instead
1 parent 63b56c4 commit 6c3d0c6

File tree

2 files changed

+33
-23
lines changed

2 files changed

+33
-23
lines changed

WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@
88
#include <WebARKitTrackers/WebARKitOpticalTracking/WebARKitUtils.h>
99

1010
namespace webarkit {
11-
static int gCameraID = 0;
11+
//static int gCameraID = 0;
1212

1313
class WebARKitTracker::WebARKitTrackerImpl {
1414
public:
1515
WebARKitTrackerImpl()
16-
: corners(4), initialized(false), output(17, 0.0), _valid(false), numMatches(0), _currentlyTrackedMarkers(0) {
17-
_featureDetectorW = WebARKitFeatureDetector();
16+
: corners(4), initialized(false), output(17, 0.0), _valid(false), numMatches(0)
17+
{
1818
_maxNumberOfMarkersToTrack = 1;
19+
_featureDetectorW = WebARKitFeatureDetector();
20+
_currentlyTrackedMarkers = 0;
21+
//_maxNumberOfMarkersToTrack = 1;
1922
_frameSizeX = 0;
2023
_frameSizeY = 0;
2124
_K = cv::Mat();
@@ -57,20 +60,23 @@ class WebARKitTracker::WebARKitTrackerImpl {
5760
}
5861
}
5962

60-
int loadARParam(std::string cparam_name, webarkit::TRACKER_TYPE trackerType) {
63+
int loadARParam(std::string cparam_name, webarkit::TRACKER_TYPE trackerType, size_t xsize, size_t ysize) {
6164
// ARParam param;
6265
if (arParamLoad(cparam_name.c_str(), 1, &m_param) < 0) {
6366
ARLOGe("loadCamera(): Error loading parameter file %s for camera.", cparam_name.c_str());
6467
return -1;
6568
}
66-
std::cout << "param xsize: " << m_param.xsize << std::endl;
67-
std::cout << "dist function version: " << m_param.dist_function_version << std::endl;
68-
int cameraID = gCameraID++;
69-
cameraParams[cameraID] = m_param;
69+
//std::cout << "param xsize: " << m_param.xsize << std::endl;
70+
//std::cout << "dist function version: " << m_param.dist_function_version << std::endl;
71+
//int cameraID = gCameraID++;
72+
//cameraParams[cameraID] = m_param;
73+
74+
initialize_w(trackerType, xsize, ysize);
7075

71-
initialize_w(trackerType, m_param.xsize, m_param.ysize);
76+
//initialize_w(trackerType, m_param.xsize, m_param.ysize);
7277

73-
return cameraID;
78+
//return cameraID;
79+
return 1;
7480
}
7581

7682
void AddMarker(uchar* buff, std::string fileName, int width, int height, int uid, float scale) {
@@ -160,7 +166,7 @@ class WebARKitTracker::WebARKitTrackerImpl {
160166
grayFrame.release();
161167
};
162168

163-
void ProcessFrameData_w(unsigned char* frame) {
169+
void ProcessFrameData_w(uchar* frame) {
164170
// Just wraps `frame` rather than copying it, i.e. `frame` must remain valid
165171
// for the duration of the call.
166172
cv::Mat newFrame(_frameSizeY, _frameSizeX, CV_8UC1, frame);
@@ -400,7 +406,8 @@ class WebARKitTracker::WebARKitTrackerImpl {
400406
return featureMask;
401407
}
402408

403-
bool CanDetectNewFeatures() { return (_currentlyTrackedMarkers < _maxNumberOfMarkersToTrack); }
409+
//bool CanDetectNewFeatures() { return (_currentlyTrackedMarkers < _maxNumberOfMarkersToTrack); }
410+
bool CanDetectNewFeatures() { return true; }
404411

405412
bool CanMatchNewFeatures(int detectedFeaturesSize) { return (detectedFeaturesSize > minRequiredDetectedFeatures); }
406413

@@ -410,6 +417,7 @@ class WebARKitTracker::WebARKitTrackerImpl {
410417
std::vector<cv::KeyPoint> finalMatched1, finalMatched2;
411418
for (int i = 0; i < _trackables.size(); i++) {
412419
if (!_trackables[i]._isDetected) {
420+
std::cout << "trackable to match" << std::endl;
413421
std::vector<std::vector<cv::DMatch>> matches =
414422
_featureDetectorW.MatchFeatures(newFrameDescriptors, _trackables[i]._descriptors);
415423
if (matches.size() > minRequiredDetectedFeatures) {
@@ -445,7 +453,7 @@ class WebARKitTracker::WebARKitTrackerImpl {
445453

446454
HomographyInfo homoInfo = GetHomographyInliers(Points(finalMatched2), Points(finalMatched1));
447455
if (homoInfo.validHomography) {
448-
// std::cout << "New marker detected" << std::endl;
456+
std::cout << "New marker detected" << std::endl;
449457
_trackables[bestMatchIndex]._trackSelection.SelectPoints();
450458
_trackables[bestMatchIndex]._trackSelection.SetHomography(homoInfo.homography);
451459
_trackables[bestMatchIndex]._isDetected = true;
@@ -570,7 +578,7 @@ class WebARKitTracker::WebARKitTrackerImpl {
570578
return testVertexPoints;
571579
}
572580

573-
cv::Mat MatchTemplateToImage(cv::Mat searchImage, cv::Mat warpedTemplate) {
581+
cv::Mat MatchTemplateToImage(cv::Mat& searchImage, cv::Mat& warpedTemplate) {
574582
int result_cols = searchImage.cols - warpedTemplate.cols + 1;
575583
int result_rows = searchImage.rows - warpedTemplate.rows + 1;
576584
if (result_cols > 0 && result_rows > 0) {
@@ -592,7 +600,7 @@ class WebARKitTracker::WebARKitTrackerImpl {
592600
}
593601
}
594602

595-
void RunTemplateMatching(cv::Mat frame, int trackableId) {
603+
void RunTemplateMatching(cv::Mat& frame, int trackableId) {
596604
// std::cout << "Starting template match" << std::endl;
597605
std::vector<cv::Point2f> finalTemplatePoints, finalTemplateMatchPoints;
598606
// Get a handle on the corresponding points from current image and the marker
@@ -677,14 +685,16 @@ class WebARKitTracker::WebARKitTrackerImpl {
677685
}
678686
}
679687

680-
void BuildImagePyramid(cv::Mat frame) { cv::buildOpticalFlowPyramid(frame, _pyramid, winSize, maxLevel); }
688+
void BuildImagePyramid(cv::Mat& frame) { cv::buildOpticalFlowPyramid(frame, _pyramid, winSize, maxLevel); }
681689

682690
void SwapImagePyramid() { _pyramid.swap(_prevPyramid); }
683691

684-
void ProcessFrame_w(cv::Mat frame) {
692+
void ProcessFrame_w(cv::Mat& frame) {
685693
// std::cout << "Building pyramid" << std::endl;
686694
BuildImagePyramid(frame);
687695
// std::cout << "Drawing detected markers to mask" << std::endl;
696+
std::cout << "Currently tracked markers: " << _currentlyTrackedMarkers << std::endl;
697+
std::cout << "Max n. markers 2 track: " << _maxNumberOfMarkersToTrack << std::endl;
688698
if (CanDetectNewFeatures()) {
689699
std::cout << "Detecting new features" << std::endl;
690700
cv::Mat detectionFrame;
@@ -701,13 +711,13 @@ class WebARKitTracker::WebARKitTrackerImpl {
701711
}
702712
if (_frameCount > 0) {
703713
if ((_currentlyTrackedMarkers > 0) && (_prevPyramid.size() > 0)) {
704-
// std::cout << "Begin tracking phase" << std::endl;
714+
std::cout << "Begin tracking phase" << std::endl;
705715
for (int i = 0; i < _trackables.size(); i++) {
706716
if (_trackables[i]._isDetected) {
707717
std::vector<cv::Point2f> trackablePoints = SelectTrackablePoints(i);
708718
std::vector<cv::Point2f> trackablePointsWarped =
709719
_trackables[i]._trackSelection.GetSelectedFeaturesWarped();
710-
// std::cout << "Starting Optical Flow" << std::endl;
720+
std::cout << "Starting Optical Flow" << std::endl;
711721
RunOpticalFlow(i, trackablePoints, trackablePointsWarped);
712722
if (_trackables[i]._isTracking) {
713723
// Refine optical flow with template match.
@@ -775,8 +785,8 @@ void WebARKitTracker::initTracker(uchar* refData, size_t refCols, size_t refRows
775785
_trackerImpl->initTracker(refData, refCols, refRows);
776786
}
777787

778-
void WebARKitTracker::loadARParam(std::string paramName, webarkit::TRACKER_TYPE trackerType) {
779-
_trackerImpl->loadARParam(paramName, trackerType);
788+
void WebARKitTracker::loadARParam(std::string paramName, webarkit::TRACKER_TYPE trackerType, size_t xsize, size_t ysize) {
789+
_trackerImpl->loadARParam(paramName, trackerType, xsize, ysize);
780790
}
781791

782792
void WebARKitTracker::AddMarker(uchar* buff, std::string fileName, int width, int height, int uid, float scale) {

WebARKit/WebARKitTrackers/WebARKitOpticalTracking/include/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class WebARKitTracker {
2626

2727
void initTracker(uchar* refData, size_t refCols, size_t refRows);
2828

29-
void loadARParam(std::string paramName, webarkit::TRACKER_TYPE trackerType);
29+
void loadARParam(std::string paramName, webarkit::TRACKER_TYPE trackerType, size_t xsize, size_t ysize);
3030

3131
void AddMarker(uchar* buff, std::string fileName, int width, int height, int uid, float scale);
3232

@@ -36,7 +36,7 @@ class WebARKitTracker {
3636

3737
void processFrameData(uchar* frameData, size_t frameCols, size_t frameRows, ColorSpace colorSpace);
3838

39-
void ProcessFrameData_w(uchar* frameData);
39+
void ProcessFrameData_w(uchar* frame);
4040

4141
std::vector<double> getOutputData();
4242

0 commit comments

Comments
 (0)