17 #ifndef STROMX_RUNTIME_MATRIXWRAPPER_H 18 #define STROMX_RUNTIME_MATRIXWRAPPER_H 20 #include "stromx/runtime/Matrix.h" 33 static void save(
const std::string& filename,
const runtime::Matrix & matrix);
39 MatrixWrapper(
const unsigned int bufferSize, uint8_t*
const buffer);
49 virtual uint8_t*
buffer() {
return m_buffer; }
50 virtual unsigned int bufferSize()
const {
return m_bufferSize; }
51 virtual unsigned int rows()
const {
return m_rows; }
52 virtual unsigned int cols()
const {
return m_cols; }
53 virtual unsigned int stride()
const {
return m_stride; }
54 virtual ValueType
valueType()
const {
return m_valueType; }
55 virtual uint8_t*
data() {
return m_data; }
56 virtual const uint8_t*
data()
const {
return m_data; }
57 virtual void initializeMatrix(
const unsigned int rows,
58 const unsigned int cols,
59 const unsigned int stride,
61 const ValueType valueType);
66 void resize(
const unsigned int rows,
const unsigned int cols,
const ValueType valueType);
73 void resize(
const unsigned int size);
79 void open(
const std::string& filename);
84 void save(
const std::string& filename)
const;
95 void setBuffer(uint8_t*
const buffer,
const unsigned int bufferSize);
104 virtual void allocate(
const unsigned int rows,
const unsigned int cols,
const runtime::Matrix::ValueType valueType) = 0;
109 static const char NUMPY_MAGIC_BYTE = char(0x93);
111 static void doSerialize(std::ostream & out,
const runtime::Matrix & matrix);
112 static void doDeserialize(std::istream & in,
MatrixWrapper & matrix);
113 static bool isLittleEndian();
114 static char npyTypeSymbol(
const runtime::Matrix::ValueType valueType);
115 static Matrix::ValueType valueTypeFromNpyHeader(
const char valueType,
const int wordSize);
117 void validate(
const unsigned int rows,
118 const unsigned int cols,
119 const unsigned int stride,
121 const ValueType valueType)
const;
125 unsigned int m_stride;
126 unsigned int m_bufferSize;
127 ValueType m_valueType;
135 #endif // STROMX_RUNTIME_MATRIXWRAPPER_H A version of an operator or data type.
Definition: Version.h:46
Definition: VariantHandle.h:34
Provides functions to serialize data to strings and files.
Definition: OutputProvider.h:27
virtual unsigned int cols() const
Definition: MatrixWrapper.h:52
virtual uint8_t * buffer()
Definition: MatrixWrapper.h:49
virtual ValueType valueType() const
Definition: MatrixWrapper.h:54
virtual const uint8_t * data() const
Definition: MatrixWrapper.h:56
Version version()
Returns the version of the stromx runtime library.
Definition: Runtime.cpp:54
The stromx class library.
Definition: AdjustRgbChannels.cpp:29
Abstract image.
Definition: Matrix.h:28
virtual unsigned int stride() const
Definition: MatrixWrapper.h:53
Concrete matrix without memory management.
Definition: MatrixWrapper.h:27
virtual unsigned int bufferSize() const
Definition: MatrixWrapper.h:50
virtual uint8_t * data()
Definition: MatrixWrapper.h:55
virtual const VariantHandle & variant() const
Definition: MatrixWrapper.h:48
virtual unsigned int rows() const
Definition: MatrixWrapper.h:51