From cf180fb98b49b027379455c3abbedb5c444264e7 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Thu, 6 Feb 2025 18:38:30 +0100 Subject: [PATCH] improves to viewMatrix_GL and related code --- WebARKit/WebARKitPattern.cpp | 4 +++- .../WebARKitOpticalTracking/WebARKitTracker.cpp | 10 +++++++++- WebARKit/include/WebARKitPattern.h | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/WebARKit/WebARKitPattern.cpp b/WebARKit/WebARKitPattern.cpp index c663cf2..fc2368a 100644 --- a/WebARKit/WebARKitPattern.cpp +++ b/WebARKit/WebARKitPattern.cpp @@ -3,7 +3,7 @@ WebARKitPatternTrackingInfo::WebARKitPatternTrackingInfo() { pose3d = cv::Mat::zeros(4, 4, CV_64FC1); - glViewMatrix = cv::Mat::zeros(4, 4, CV_64F); + glViewMatrix = cv::Mat::zeros(4, 4, CV_64FC1); m_scale = 1.0f; } @@ -67,6 +67,8 @@ void WebARKitPatternTrackingInfo::updateTrackable() { void WebARKitPatternTrackingInfo::computeGLviewMatrix() { cv::transpose(pose3d, glViewMatrix); } +void WebARKitPatternTrackingInfo::computeGLviewMatrix(cv::Mat &pose) { cv::transpose(pose, glViewMatrix); } + void WebARKitPatternTrackingInfo::invertPose() { /*cv::Mat invertPose(3, 4, CV_64FC1); diff --git a/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp b/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp index 605fa04..4667dcd 100644 --- a/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp +++ b/WebARKit/WebARKitTrackers/WebARKitOpticalTracking/WebARKitTracker.cpp @@ -78,6 +78,14 @@ class WebARKitTracker::WebARKitTrackerImpl { webarkit::cameraProjectionMatrix(camData, 0.1, 1000.0, frameWidth, frameHeight, m_cameraProjectionMatrix); + for (auto i = 0; i < 16; i++) { + + WEBARKIT_LOGi("Camera Proj Matrix: %.2f\n", m_cameraProjectionMatrix[i]); + + } + + //1.9102363924347978, 0, 0, 0, 0, 2.5377457054523322, 0, 0, -0.013943280545895442, -0.005830389685211879, -1.0000002000000199, -1, 0, 0, -0.00020000002000000202, 0 + _pyramid.clear(); _prevPyramid.clear(); _currentlyTrackedMarkers = 0; @@ -383,6 +391,7 @@ class WebARKitTracker::WebARKitTrackerImpl { // _patternTrackingInfo.computePose(_pattern.points3d, warpedCorners, m_camMatrix, m_distortionCoeff); _patternTrackingInfo.getTrackablePose(_pose); _patternTrackingInfo.updateTrackable(); + _patternTrackingInfo.computeGLviewMatrix(_pose); fill_output(m_H); WEBARKIT_LOGi("Marker tracked ! Num. matches : %d\n", numMatches); } @@ -722,7 +731,6 @@ class WebARKitTracker::WebARKitTrackerImpl { cv::Mat m_distortionCoeff; std::array m_cameraProjectionMatrix; - private: int _maxNumberOfMarkersToTrack; diff --git a/WebARKit/include/WebARKitPattern.h b/WebARKit/include/WebARKitPattern.h index df9b11c..06de10c 100644 --- a/WebARKit/include/WebARKitPattern.h +++ b/WebARKit/include/WebARKitPattern.h @@ -47,6 +47,8 @@ class WebARKitPatternTrackingInfo { void computeGLviewMatrix(); + void computeGLviewMatrix(cv::Mat &pose); + private: float m_scale; void invertPose();