summaryrefslogtreecommitdiff
path: root/src/ipa/rpi/controller/rpi/ccm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/rpi/controller/rpi/ccm.h')
-rw-r--r--src/ipa/rpi/controller/rpi/ccm.h35
1 files changed, 2 insertions, 33 deletions
diff --git a/src/ipa/rpi/controller/rpi/ccm.h b/src/ipa/rpi/controller/rpi/ccm.h
index 8e7f9616..c05dbb17 100644
--- a/src/ipa/rpi/controller/rpi/ccm.h
+++ b/src/ipa/rpi/controller/rpi/ccm.h
@@ -8,6 +8,7 @@
#include <vector>
+#include "libcamera/internal/matrix.h"
#include <libipa/pwl.h>
#include "../ccm_algorithm.h"
@@ -16,41 +17,9 @@ namespace RPiController {
/* Algorithm to calculate colour matrix. Should be placed after AWB. */
-struct Matrix3x3 {
- Matrix3x3(double m0, double m1, double m2, double m3, double m4, double m5,
- double m6, double m7, double m8);
- Matrix3x3();
- double m[3][3];
- int read(const libcamera::YamlObject &params);
-};
-static inline Matrix3x3 operator*(double d, Matrix3x3 const &m)
-{
- return Matrix3x3(m.m[0][0] * d, m.m[0][1] * d, m.m[0][2] * d,
- m.m[1][0] * d, m.m[1][1] * d, m.m[1][2] * d,
- m.m[2][0] * d, m.m[2][1] * d, m.m[2][2] * d);
-}
-static inline Matrix3x3 operator*(Matrix3x3 const &m1, Matrix3x3 const &m2)
-{
- Matrix3x3 m;
- for (int i = 0; i < 3; i++)
- for (int j = 0; j < 3; j++)
- m.m[i][j] = m1.m[i][0] * m2.m[0][j] +
- m1.m[i][1] * m2.m[1][j] +
- m1.m[i][2] * m2.m[2][j];
- return m;
-}
-static inline Matrix3x3 operator+(Matrix3x3 const &m1, Matrix3x3 const &m2)
-{
- Matrix3x3 m;
- for (int i = 0; i < 3; i++)
- for (int j = 0; j < 3; j++)
- m.m[i][j] = m1.m[i][j] + m2.m[i][j];
- return m;
-}
-
struct CtCcm {
double ct;
- Matrix3x3 ccm;
+ libcamera::Matrix<double, 3, 3> ccm;
};
struct CcmConfig {