23 _edgeLength(edgeLength),
24 _averagePosition(2,
CVVec3f(0.0f, 0.0f, 0.0f)),
25 _averageRotation(2,
SLQuat4f(0.0f, 0.0f, 0.0f, 1.0f))
48 vector<CVVec3f> translations;
49 vector<SLQuat4f> rotations;
50 vector<float> weights;
52 for (
size_t i = 0; i <
arucoIDs.size(); i++)
96 faceViewMatrix.
m(12, translation.
x);
97 faceViewMatrix.
m(13, translation.
y);
98 faceViewMatrix.
m(14, translation.
z);
104 translations.emplace_back(translation.
x, translation.
y, translation.
z);
105 rotations.push_back(rotation);
106 weights.push_back(weight);
113 if (!translations.empty())
129 rot.
m(1), rot.
m(4), rot.
m(7), pos.val[1],
130 rot.
m(2), rot.
m(5), rot.
m(8), pos.val[2],
#define PROFILE_FUNCTION()
#define SL_LOG(...)
Some debugging and error handling macros.
void set(SLQuat4f value)
Sets the current value in the value array and builds the average.
Live video camera calibration class with OpenCV an OpenCV calibration.
Averaged< CVVec3f > _averagePosition
AveragedQuat4f _averageRotation
CVTrackedArucoCube(string calibIniPath, float edgeLength)
bool track(CVMat imageGray, CVMat imageBgr, CVCalibration *calib)
Tracks the all Aruco markers in the given image for the first sceneview.
OpenCV ArUco marker tracker class derived from CVTracked.
bool trackAll(CVMat imageGray, CVMat imageBgr, CVCalibration *calib, CVRect roi=CVRect(0, 0, 0, 0))
vector< int > arucoIDs
detected Aruco marker IDs
CVVMatx44f objectViewMats
object view matrices for all found markers
CVMatx44f _objectViewMat
view transformation matrix
static SLQuat4f averageQuaternion(vector< SLQuat4f > quaternions, vector< float > weights)
static CVVec3f averageVector(vector< CVVec3f > vectors, vector< float > weights)
void transpose()
Sets the transposed matrix by swaping around the main diagonal.
SLVec3< T > translation() const
void rotate(T degAng, T axisx, T axisy, T axisz)
SLVec3< T > axisZ() const
void translate(T tx, T ty, T tz=0)
SLMat3< T > toMat3() const
void fromMat3(const SLMat3< T > &m)
T dot(const SLVec3 &v) const
void set(T value)
Sets the current value in the value array and builds the average.
T clamp(T a, T min, T max)