From 47141c873ffd3d7af62bfba40b1adbcce0df6574 Mon Sep 17 00:00:00 2001 From: Justin Berger Date: Sun, 1 Jul 2018 04:13:34 +0000 Subject: Finalized reading in and transforming of accel/gyro data --- redist/minimal_opencv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'redist/minimal_opencv.c') diff --git a/redist/minimal_opencv.c b/redist/minimal_opencv.c index c9cacf3..da7681c 100644 --- a/redist/minimal_opencv.c +++ b/redist/minimal_opencv.c @@ -374,3 +374,26 @@ SURVIVE_LOCAL_ONLY void cvReleaseMat(CvMat **mat) { free(*mat); *mat = 0; } + +SURVIVE_LOCAL_ONLY double cvDet(const CvMat *M) { + assert(M->rows == M->cols); + assert(M->rows <= 3 && "cvDet unimplemented for matrices >3"); + assert(CV_64F == CV_MAT_TYPE(M->type) && "cvDet unimplemented for float"); + double *m = M->data.db; + + switch (M->rows) { + case 1: + return m[0]; + case 2: { + return m[0] * m[3] - m[1] * m[2]; + } + case 3: { + double m00 = m[0], m01 = m[1], m02 = m[2], m10 = m[3], m11 = m[4], m12 = m[5], m20 = m[6], m21 = m[7], + m22 = m[8]; + + return m00 * (m11 * m22 - m12 * m21) - m01 * (m10 * m22 - m12 * m20) + m02 * (m10 * m21 - m11 * m20); + } + default: + abort(); + } +} -- cgit v1.2.3