5#ifndef ALSON_CLASSIC_BASE_ENTITY_ALSON_MAT_H
6#define ALSON_CLASSIC_BASE_ENTITY_ALSON_MAT_H
18#define ALSON_MAT_CN_SHIFT 3
19#define ALSON_MAT_DEPTH_MAX (1 << ALSON_MAT_CN_SHIFT)
23#define ALSON_MAT_16U 2
24#define ALSON_MAT_16S 3
25#define ALSON_MAT_32S 4
26#define ALSON_MAT_32F 5
27#define ALSON_MAT_64F 6
28#define ALSON_MAT_16F 7
30#define ALSON_MAT_MAT_DEPTH_MASK (ALSON_MAT_DEPTH_MAX - 1)
31#define ALSON_MAT_MAT_DEPTH(flags) ((flags) & ALSON_MAT_MAT_DEPTH_MASK)
33#define ALSON_MAT_MAKETYPE(depth, cn) (ALSON_MAT_MAT_DEPTH(depth) + (((cn)-1) << ALSON_MAT_CN_SHIFT))
34#define ALSON_MAT_MAKE_TYPE ALSON_MAT_MAKETYPE
50#define ALSON_MAT_8UC1 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,1)
51#define ALSON_MAT_8UC2 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,2)
52#define ALSON_MAT_8UC3 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,3)
53#define ALSON_MAT_8UC4 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,4)
54#define ALSON_MAT_8UC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_8U,(n))
56#define ALSON_MAT_8SC1 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,1)
57#define ALSON_MAT_8SC2 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,2)
58#define ALSON_MAT_8SC3 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,3)
59#define ALSON_MAT_8SC4 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,4)
60#define ALSON_MAT_8SC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_8S,(n))
62#define ALSON_MAT_16UC1 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,1)
63#define ALSON_MAT_16UC2 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,2)
64#define ALSON_MAT_16UC3 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,3)
65#define ALSON_MAT_16UC4 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,4)
66#define ALSON_MAT_16UC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_16U,(n))
68#define ALSON_MAT_16SC1 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,1)
69#define ALSON_MAT_16SC2 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,2)
70#define ALSON_MAT_16SC3 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,3)
71#define ALSON_MAT_16SC4 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,4)
72#define ALSON_MAT_16SC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_16S,(n))
74#define ALSON_MAT_32SC1 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,1)
75#define ALSON_MAT_32SC2 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,2)
76#define ALSON_MAT_32SC3 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,3)
77#define ALSON_MAT_32SC4 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,4)
78#define ALSON_MAT_32SC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_32S,(n))
80#define ALSON_MAT_32FC1 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,1)
81#define ALSON_MAT_32FC2 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,2)
82#define ALSON_MAT_32FC3 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,3)
83#define ALSON_MAT_32FC4 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,4)
84#define ALSON_MAT_32FC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_32F,(n))
86#define ALSON_MAT_64FC1 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,1)
87#define ALSON_MAT_64FC2 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,2)
88#define ALSON_MAT_64FC3 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,3)
89#define ALSON_MAT_64FC4 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,4)
90#define ALSON_MAT_64FC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_64F,(n))
92#define ALSON_MAT_16FC1 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,1)
93#define ALSON_MAT_16FC2 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,2)
94#define ALSON_MAT_16FC3 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,3)
95#define ALSON_MAT_16FC4 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,4)
96#define ALSON_MAT_16FC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_16F,(n))
311 static
AlsonMat create(
int rows,
int cols,
int type);
334 static
AlsonMat create(
int rows,
int cols,
int type, uint8_t* data);
412 void save(const std::
string& filename);
427 uint8_t* data()
const {
return m_data; }
445 void setData(uint8_t* data) { m_data = data; }
535 std::allocator<uint8_t> m_allocator;
AlsonMat(AlsonMat &&) noexcept
AlsonMat(int r, int c, int t)
AlsonMat(const AlsonMat &)
void setData(uint8_t *data)
AlsonMat(int r, int c, int t, uint8_t *d)
AlsonMat & operator=(const AlsonMat &)