Template matrix class derived from Mat. More...
#include <core.hpp>
Inherits cv::Mat.
Public Types | |
typedef _Tp | value_type |
typedef DataType< _Tp > ::channel_type | channel_type |
typedef MatIterator_< _Tp > | iterator |
typedef MatConstIterator_< _Tp > | const_iterator |
enum | { MAGIC_VAL = 0x42FF0000, AUTO_STEP = 0, CONTINUOUS_FLAG = CV_MAT_CONT_FLAG, SUBMATRIX_FLAG = CV_SUBMAT_FLAG } |
Public Member Functions | |
Mat_ () | |
default constructor | |
Mat_ (int _rows, int _cols) | |
equivalent to Mat(_rows, _cols, DataType<_Tp>::type) | |
Mat_ (int _rows, int _cols, const _Tp &value) | |
constructor that sets each matrix element to specified value | |
Mat_ (Size _size) | |
equivalent to Mat(_size, DataType<_Tp>::type) | |
Mat_ (Size _size, const _Tp &value) | |
constructor that sets each matrix element to specified value | |
Mat_ (int _ndims, const int *_sizes) | |
n-dim array constructor | |
Mat_ (int _ndims, const int *_sizes, const _Tp &value) | |
n-dim array constructor that sets each matrix element to specified value | |
Mat_ (const Mat &m) | |
copy/conversion contructor. If m is of different type, it's converted | |
Mat_ (const Mat_ &m) | |
copy constructor | |
Mat_ (int _rows, int _cols, _Tp *_data, size_t _step=AUTO_STEP) | |
constructs a matrix on top of user-allocated data. step is in bytes(!!!), regardless of the type | |
Mat_ (int _ndims, const int *_sizes, _Tp *_data, const size_t *_steps=0) | |
constructs n-dim matrix on top of user-allocated data. steps are in bytes(!!!), regardless of the type | |
Mat_ (const Mat_ &m, const Range &rowRange, const Range &colRange=Range::all()) | |
selects a submatrix | |
Mat_ (const Mat_ &m, const Rect &roi) | |
selects a submatrix | |
Mat_ (const Mat_ &m, const Range *ranges) | |
selects a submatrix, n-dim version | |
Mat_ (const MatExpr &e) | |
from a matrix expression | |
Mat_ (const vector< _Tp > &vec, bool copyData=false) | |
makes a matrix out of Vec, std::vector, Point_ or Point3_. The matrix will have a single column | |
template<int n> | |
Mat_ (const Vec< typename DataType< _Tp >::channel_type, n > &vec, bool copyData=true) | |
template<int m, int n> | |
Mat_ (const Matx< typename DataType< _Tp >::channel_type, m, n > &mtx, bool copyData=true) | |
Mat_ (const Point_< typename DataType< _Tp >::channel_type > &pt, bool copyData=true) | |
Mat_ (const Point3_< typename DataType< _Tp >::channel_type > &pt, bool copyData=true) | |
Mat_ (const MatCommaInitializer_< _Tp > &commaInitializer) | |
Mat_ & | operator= (const Mat &m) |
assignment operators | |
Mat_ & | operator= (const Mat_ &m) |
Mat_ & | operator= (const _Tp &s) |
set all the elements to s. | |
Mat_ & | operator= (const MatExpr &e) |
assign a matrix expression | |
iterator | begin () |
iterators; they are smart enough to skip gaps in the end of rows | |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
void | create (int _rows, int _cols) |
equivalent to Mat::create(_rows, _cols, DataType<_Tp>::type) | |
void | create (Size _size) |
equivalent to Mat::create(_size, DataType<_Tp>::type) | |
void | create (int _ndims, const int *_sizes) |
equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type) | |
Mat_ | cross (const Mat_ &m) const |
cross-product | |
template<typename T2 > | |
operator Mat_< T2 > () const | |
data type conversion | |
Mat_ | row (int y) const |
overridden forms of Mat::row() etc. | |
Mat_ | col (int x) const |
returns a new matrix header for the specified column | |
Mat_ | diag (int d=0) const |
... for the specified diagonal | |
Mat_ | clone () const |
returns deep copy of the matrix, i.e. the data is copied | |
size_t | elemSize () const |
overridden forms of Mat::elemSize() etc. | |
size_t | elemSize1 () const |
returns the size of element channel in bytes. | |
int | type () const |
returns element type, similar to CV_MAT_TYPE(cvmat->type) | |
int | depth () const |
returns element type, similar to CV_MAT_DEPTH(cvmat->type) | |
int | channels () const |
returns element type, similar to CV_MAT_CN(cvmat->type) | |
size_t | step1 (int i=0) const |
returns step/elemSize1() | |
size_t | stepT (int i=0) const |
returns step()/sizeof(_Tp) | |
Mat_ | reshape (int _rows) const |
some more overriden methods | |
Mat_ & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
moves/resizes the current matrix ROI inside the parent matrix. | |
Mat_ | operator() (const Range &rowRange, const Range &colRange) const |
Mat_ | operator() (const Rect &roi) const |
Mat_ | operator() (const Range *ranges) const |
_Tp * | operator[] (int y) |
more convenient forms of row and element access operators | |
const _Tp * | operator[] (int y) const |
_Tp & | operator() (const int *idx) |
returns reference to the specified element | |
const _Tp & | operator() (const int *idx) const |
returns read-only reference to the specified element | |
template<int n> | |
_Tp & | operator() (const Vec< int, n > &idx) |
returns reference to the specified element | |
template<int n> | |
const _Tp & | operator() (const Vec< int, n > &idx) const |
returns read-only reference to the specified element | |
_Tp & | operator() (int idx0) |
returns reference to the specified element (1D case) | |
const _Tp & | operator() (int idx0) const |
returns read-only reference to the specified element (1D case) | |
_Tp & | operator() (int idx0, int idx1) |
returns reference to the specified element (2D case) | |
const _Tp & | operator() (int idx0, int idx1) const |
returns read-only reference to the specified element (2D case) | |
_Tp & | operator() (int idx0, int idx1, int idx2) |
returns reference to the specified element (3D case) | |
const _Tp & | operator() (int idx0, int idx1, int idx2) const |
returns read-only reference to the specified element (3D case) | |
_Tp & | operator() (Point pt) |
const _Tp & | operator() (Point pt) const |
operator vector< _Tp > () const | |
conversion to vector. | |
template<int n> | |
operator Vec< typename DataType< _Tp >::channel_type, n > () const | |
conversion to Vec | |
template<int m, int n> | |
operator Matx< typename DataType< _Tp >::channel_type, m, n > () const | |
conversion to Matx | |
Mat | rowRange (int startrow, int endrow) const |
... for the specified row span | |
Mat | rowRange (const Range &r) const |
Mat | colRange (int startcol, int endcol) const |
... for the specified column span | |
Mat | colRange (const Range &r) const |
void | copyTo (OutputArray m) const |
copies the matrix content to "m". | |
void | copyTo (OutputArray m, InputArray mask) const |
copies those matrix elements to "m" that are marked with non-zero mask elements. | |
void | convertTo (OutputArray m, int rtype, double alpha=1, double beta=0) const |
converts matrix to another datatype with optional scalng. See cvConvertScale. | |
void | assignTo (Mat &m, int type=-1) const |
Mat & | setTo (InputArray value, InputArray mask=noArray()) |
sets some of the matrix elements to s, according to the mask | |
Mat | reshape (int _cn, int _rows=0) const |
creates alternative matrix header for the same data, with different | |
Mat | reshape (int _cn, int _newndims, const int *_newsz) const |
MatExpr | t () const |
matrix transposition by means of matrix expressions | |
MatExpr | inv (int method=DECOMP_LU) const |
matrix inversion by means of matrix expressions | |
MatExpr | mul (InputArray m, double scale=1) const |
per-element matrix multiplication by means of matrix expressions | |
Mat | cross (InputArray m) const |
computes cross-product of 2 3D vectors | |
double | dot (InputArray m) const |
computes dot-product | |
void | create (int _rows, int _cols, int _type) |
allocates new matrix data unless the matrix already has specified size and type. | |
void | create (Size _size, int _type) |
void | create (int _ndims, const int *_sizes, int _type) |
void | addref () |
increases the reference counter; use with care to avoid memleaks | |
void | release () |
decreases reference counter; | |
void | deallocate () |
deallocates the matrix data | |
void | copySize (const Mat &m) |
internal use function; properly re-allocates _size, _step arrays | |
void | reserve (size_t sz) |
reserves enough space to fit sz hyper-planes | |
void | resize (size_t sz) |
resizes matrix to the specified number of hyper-planes | |
void | resize (size_t sz, const Scalar &s) |
resizes matrix to the specified number of hyper-planes; initializes the newly added elements | |
void | push_back_ (const void *elem) |
internal function | |
template<typename _Tp > | |
void | push_back (const _Tp &elem) |
adds element to the end of 1d matrix (or possibly multiple elements when _Tp=Mat) | |
template<typename _Tp > | |
void | push_back (const Mat_< _Tp > &elem) |
void | push_back (const Mat &m) |
void | pop_back (size_t nelems=1) |
removes several hyper-planes from bottom of the matrix | |
void | locateROI (Size &wholeSize, Point &ofs) const |
locates matrix header within a parent matrix. See below | |
Mat | operator() (Range rowRange, Range colRange) const |
extracts a rectangular sub-matrix | |
operator CvMat () const | |
converts header to CvMat; no data is copied | |
operator CvMatND () const | |
converts header to CvMatND; no data is copied | |
operator IplImage () const | |
converts header to IplImage; no data is copied | |
template<typename _Tp , int n> | |
operator Vec< _Tp, n > () const | |
template<typename _Tp , int m, int n> | |
operator Matx< _Tp, m, n > () const | |
bool | isContinuous () const |
returns true iff the matrix data is continuous | |
bool | isSubmatrix () const |
returns true if the matrix is a submatrix of another matrix | |
bool | empty () const |
returns true if matrix data is NULL | |
size_t | total () const |
returns the total number of matrix elements | |
int | checkVector (int elemChannels, int depth=-1, bool requireContinuous=true) const |
returns N if the matrix is 1-channel (N x ptdim) or ptdim-channel (1 x N) or (N x 1); negative number otherwise | |
uchar * | ptr (int i0=0) |
returns pointer to i0-th submatrix along the dimension #0 | |
const uchar * | ptr (int i0=0) const |
uchar * | ptr (int i0, int i1) |
returns pointer to (i0,i1) submatrix along the dimensions #0 and #1 | |
const uchar * | ptr (int i0, int i1) const |
uchar * | ptr (int i0, int i1, int i2) |
returns pointer to (i0,i1,i3) submatrix along the dimensions #0, #1, #2 | |
const uchar * | ptr (int i0, int i1, int i2) const |
uchar * | ptr (const int *idx) |
returns pointer to the matrix element | |
const uchar * | ptr (const int *idx) const |
returns read-only pointer to the matrix element | |
template<int n> | |
uchar * | ptr (const Vec< int, n > &idx) |
template<int n> | |
const uchar * | ptr (const Vec< int, n > &idx) const |
template<typename _Tp > | |
_Tp * | ptr (int i0=0) |
template version of the above method | |
template<typename _Tp > | |
const _Tp * | ptr (int i0=0) const |
template<typename _Tp > | |
_Tp * | ptr (int i0, int i1) |
template<typename _Tp > | |
const _Tp * | ptr (int i0, int i1) const |
template<typename _Tp > | |
_Tp * | ptr (int i0, int i1, int i2) |
template<typename _Tp > | |
const _Tp * | ptr (int i0, int i1, int i2) const |
template<typename _Tp > | |
_Tp * | ptr (const int *idx) |
template<typename _Tp > | |
const _Tp * | ptr (const int *idx) const |
template<typename _Tp , int n> | |
_Tp * | ptr (const Vec< int, n > &idx) |
template<typename _Tp , int n> | |
const _Tp * | ptr (const Vec< int, n > &idx) const |
template<typename _Tp > | |
_Tp & | at (int i0=0) |
the same as above, with the pointer dereferencing | |
template<typename _Tp > | |
const _Tp & | at (int i0=0) const |
template<typename _Tp > | |
_Tp & | at (int i0, int i1) |
template<typename _Tp > | |
const _Tp & | at (int i0, int i1) const |
template<typename _Tp > | |
_Tp & | at (int i0, int i1, int i2) |
template<typename _Tp > | |
const _Tp & | at (int i0, int i1, int i2) const |
template<typename _Tp > | |
_Tp & | at (const int *idx) |
template<typename _Tp > | |
const _Tp & | at (const int *idx) const |
template<typename _Tp , int n> | |
_Tp & | at (const Vec< int, n > &idx) |
template<typename _Tp , int n> | |
const _Tp & | at (const Vec< int, n > &idx) const |
template<typename _Tp > | |
_Tp & | at (Point pt) |
special versions for 2D arrays (especially convenient for referencing image pixels) | |
template<typename _Tp > | |
const _Tp & | at (Point pt) const |
Static Public Member Functions | |
static MatExpr | zeros (int rows, int cols) |
overridden forms of Mat::zeros() etc. Data type is omitted, of course | |
static MatExpr | zeros (Size size) |
static MatExpr | zeros (int _ndims, const int *_sizes) |
static MatExpr | ones (int rows, int cols) |
static MatExpr | ones (Size size) |
static MatExpr | ones (int _ndims, const int *_sizes) |
static MatExpr | eye (int rows, int cols) |
static MatExpr | eye (Size size) |
static Mat | diag (const Mat &d) |
constructs a square diagonal matrix which main diagonal is vector "d" | |
static MatExpr | zeros (int rows, int cols, int type) |
Matlab-style matrix initialization. | |
static MatExpr | zeros (Size size, int type) |
static MatExpr | zeros (int ndims, const int *sz, int type) |
static MatExpr | ones (int rows, int cols, int type) |
static MatExpr | ones (Size size, int type) |
static MatExpr | ones (int ndims, const int *sz, int type) |
static MatExpr | eye (int rows, int cols, int type) |
static MatExpr | eye (Size size, int type) |
Public Attributes | |
int | flags |
includes several bit-fields: | |
int | dims |
the matrix dimensionality, >= 2 | |
int | rows |
the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions | |
int | cols |
uchar * | data |
pointer to the data | |
int * | refcount |
pointer to the reference counter; | |
uchar * | datastart |
helper fields used in locateROI and adjustROI | |
uchar * | dataend |
uchar * | datalimit |
MatAllocator * | allocator |
custom allocator | |
MSize | size |
MStep | step |
Template matrix class derived from Mat.
The class Mat_ is a "thin" template wrapper on top of cv::Mat. It does not have any extra data fields, nor it or cv::Mat have any virtual methods and thus references or pointers to these two classes can be safely converted one to another. But do it with care, for example:
// create 100x100 8-bit matrix Mat M(100,100,CV_8U); // this will compile fine. no any data conversion will be done. Mat_<float>& M1 = (Mat_<float>&)M; // the program will likely crash at the statement below M1(99,99) = 1.f;
While cv::Mat is sufficient in most cases, cv::Mat_ can be more convenient if you use a lot of element access operations and if you know matrix type at compile time. Note that cv::Mat::at<Tp>(int y, int x) and cv::Mat<_Tp>::operator ()(int y, int x) do absolutely the same thing and run at the same speed, but the latter is certainly shorter:
Mat_<double> M(20,20); for(int i = 0; i < M.rows; i++) for(int j = 0; j < M.cols; j++) M(i,j) = 1./(i+j+1); Mat E, V; eigen(M,E,V); cout << E.at<double>(0,0)/E.at<double>(M.rows-1,0);
It is easy to use Mat_ for multi-channel images/matrices - just pass cv::Vec as cv::Mat_ template parameter:
// allocate 320x240 color image and fill it with green (in RGB space) Mat_<Vec3b> img(240, 320, Vec3b(0,255,0)); // now draw a diagonal white line for(int i = 0; i < 100; i++) img(i,i)=Vec3b(255,255,255); // and now modify the 2nd (red) channel of each pixel for(int i = 0; i < img.rows; i++) for(int j = 0; j < img.cols; j++) img(i,j)[2] ^= (uchar)(i ^ j); // img(y,x)[c] accesses c-th channel of the pixel (x,y)
typedef _Tp cv::Mat_< _Tp >::value_type |
typedef DataType<_Tp>::channel_type cv::Mat_< _Tp >::channel_type |
typedef MatIterator_<_Tp> cv::Mat_< _Tp >::iterator |
typedef MatConstIterator_<_Tp> cv::Mat_< _Tp >::const_iterator |
equivalent to Mat(_rows, _cols, DataType<_Tp>::type)
constructor that sets each matrix element to specified value
equivalent to Mat(_size, DataType<_Tp>::type)
constructor that sets each matrix element to specified value
n-dim array constructor
n-dim array constructor that sets each matrix element to specified value
copy/conversion contructor. If m is of different type, it's converted
cv::Mat_< _Tp >::Mat_ | ( | int | _rows, |
int | _cols, | ||
_Tp * | _data, | ||
size_t | _step = AUTO_STEP |
||
) |
constructs a matrix on top of user-allocated data. step is in bytes(!!!), regardless of the type
cv::Mat_< _Tp >::Mat_ | ( | int | _ndims, |
const int * | _sizes, | ||
_Tp * | _data, | ||
const size_t * | _steps = 0 |
||
) |
constructs n-dim matrix on top of user-allocated data. steps are in bytes(!!!), regardless of the type
cv::Mat_< _Tp >::Mat_ | ( | const Mat_< _Tp > & | m, |
const Range & | rowRange, | ||
const Range & | colRange = Range::all() |
||
) |
selects a submatrix
selects a submatrix
selects a submatrix, n-dim version
from a matrix expression
cv::Mat_< _Tp >::Mat_ | ( | const Vec< typename DataType< _Tp >::channel_type, n > & | vec, |
bool | copyData = true |
||
) | [explicit] |
cv::Mat_< _Tp >::Mat_ | ( | const Matx< typename DataType< _Tp >::channel_type, m, n > & | mtx, |
bool | copyData = true |
||
) | [explicit] |
cv::Mat_< _Tp >::Mat_ | ( | const Point_< typename DataType< _Tp >::channel_type > & | pt, |
bool | copyData = true |
||
) | [explicit] |
cv::Mat_< _Tp >::Mat_ | ( | const Point3_< typename DataType< _Tp >::channel_type > & | pt, |
bool | copyData = true |
||
) | [explicit] |
cv::Mat_< _Tp >::Mat_ | ( | const MatCommaInitializer_< _Tp > & | commaInitializer | ) | [explicit] |
assignment operators
Reimplemented from cv::Mat.
set all the elements to s.
assign a matrix expression
Reimplemented from cv::Mat.
MatIterator_< _Tp > cv::Mat_< _Tp >::begin | ( | ) |
iterators; they are smart enough to skip gaps in the end of rows
Reimplemented from cv::Mat.
MatIterator_< _Tp > cv::Mat_< _Tp >::end | ( | ) |
Reimplemented from cv::Mat.
MatConstIterator_< _Tp > cv::Mat_< _Tp >::begin | ( | ) | const |
Reimplemented from cv::Mat.
MatConstIterator_< _Tp > cv::Mat_< _Tp >::end | ( | ) | const |
Reimplemented from cv::Mat.
equivalent to Mat::create(_rows, _cols, DataType<_Tp>::type)
equivalent to Mat::create(_size, DataType<_Tp>::type)
equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type)
cross-product
data type conversion
overridden forms of Mat::row() etc.
Reimplemented from cv::Mat.
returns a new matrix header for the specified column
Reimplemented from cv::Mat.
... for the specified diagonal
Reimplemented from cv::Mat.
returns deep copy of the matrix, i.e. the data is copied
Reimplemented from cv::Mat.
overridden forms of Mat::elemSize() etc.
Reimplemented from cv::Mat.
returns the size of element channel in bytes.
Reimplemented from cv::Mat.
returns element type, similar to CV_MAT_TYPE(cvmat->type)
Reimplemented from cv::Mat.
returns element type, similar to CV_MAT_DEPTH(cvmat->type)
Reimplemented from cv::Mat.
returns element type, similar to CV_MAT_CN(cvmat->type)
Reimplemented from cv::Mat.
returns step/elemSize1()
Reimplemented from cv::Mat.
overridden forms of Mat::zeros() etc. Data type is omitted, of course
static MatExpr cv::Mat_< _Tp >::zeros | ( | int | _ndims, |
const int * | _sizes | ||
) | [static] |
static MatExpr cv::Mat_< _Tp >::ones | ( | int | _ndims, |
const int * | _sizes | ||
) | [static] |
some more overriden methods
Mat_< _Tp > & cv::Mat_< _Tp >::adjustROI | ( | int | dtop, |
int | dbottom, | ||
int | dleft, | ||
int | dright | ||
) |
moves/resizes the current matrix ROI inside the parent matrix.
Reimplemented from cv::Mat.
Mat_< _Tp > cv::Mat_< _Tp >::operator() | ( | const Range & | rowRange, |
const Range & | colRange | ||
) | const |
Reimplemented from cv::Mat.
Reimplemented from cv::Mat.
_Tp * cv::Mat_< _Tp >::operator[] | ( | int | y | ) |
more convenient forms of row and element access operators
const _Tp * cv::Mat_< _Tp >::operator[] | ( | int | y | ) | const |
_Tp & cv::Mat_< _Tp >::operator() | ( | const int * | idx | ) |
returns reference to the specified element
const _Tp & cv::Mat_< _Tp >::operator() | ( | const int * | idx | ) | const |
returns read-only reference to the specified element
_Tp& cv::Mat_< _Tp >::operator() | ( | const Vec< int, n > & | idx | ) |
returns reference to the specified element
const _Tp& cv::Mat_< _Tp >::operator() | ( | const Vec< int, n > & | idx | ) | const |
returns read-only reference to the specified element
_Tp & cv::Mat_< _Tp >::operator() | ( | int | idx0 | ) |
returns reference to the specified element (1D case)
const _Tp & cv::Mat_< _Tp >::operator() | ( | int | idx0 | ) | const |
returns read-only reference to the specified element (1D case)
_Tp & cv::Mat_< _Tp >::operator() | ( | int | idx0, |
int | idx1 | ||
) |
returns reference to the specified element (2D case)
const _Tp & cv::Mat_< _Tp >::operator() | ( | int | idx0, |
int | idx1 | ||
) | const |
returns read-only reference to the specified element (2D case)
_Tp & cv::Mat_< _Tp >::operator() | ( | int | idx0, |
int | idx1, | ||
int | idx2 | ||
) |
returns reference to the specified element (3D case)
const _Tp & cv::Mat_< _Tp >::operator() | ( | int | idx0, |
int | idx1, | ||
int | idx2 | ||
) | const |
returns read-only reference to the specified element (3D case)
cv::Mat_< _Tp >::operator vector< _Tp > | ( | ) | const |
conversion to vector.
Reimplemented from cv::Mat.
cv::Mat_< _Tp >::operator Vec< typename DataType< _Tp >::channel_type, n > | ( | ) | const |
conversion to Vec
cv::Mat_< _Tp >::operator Matx< typename DataType< _Tp >::channel_type, m, n > | ( | ) | const |
conversion to Matx
Mat cv::Mat::rowRange | ( | int | startrow, |
int | endrow | ||
) | const [inherited] |
... for the specified row span
Mat cv::Mat::rowRange | ( | const Range & | r | ) | const [inherited] |
Mat cv::Mat::colRange | ( | int | startcol, |
int | endcol | ||
) | const [inherited] |
... for the specified column span
Mat cv::Mat::colRange | ( | const Range & | r | ) | const [inherited] |
Mat cv::Mat::diag | ( | const Mat & | d | ) | [static, inherited] |
constructs a square diagonal matrix which main diagonal is vector "d"
void cv::Mat::copyTo | ( | OutputArray | m | ) | const [inherited] |
copies the matrix content to "m".
void cv::Mat::copyTo | ( | OutputArray | m, |
InputArray | mask | ||
) | const [inherited] |
copies those matrix elements to "m" that are marked with non-zero mask elements.
void cv::Mat::convertTo | ( | OutputArray | m, |
int | rtype, | ||
double | alpha = 1 , |
||
double | beta = 0 |
||
) | const [inherited] |
converts matrix to another datatype with optional scalng. See cvConvertScale.
void cv::Mat::assignTo | ( | Mat & | m, |
int | type = -1 |
||
) | const [inherited] |
Mat& cv::Mat::setTo | ( | InputArray | value, |
InputArray | mask = noArray() |
||
) | [inherited] |
sets some of the matrix elements to s, according to the mask
Mat cv::Mat::reshape | ( | int | _cn, |
int | _rows = 0 |
||
) | const [inherited] |
creates alternative matrix header for the same data, with different
Mat cv::Mat::reshape | ( | int | _cn, |
int | _newndims, | ||
const int * | _newsz | ||
) | const [inherited] |
MatExpr cv::Mat::t | ( | ) | const [inherited] |
matrix transposition by means of matrix expressions
MatExpr cv::Mat::inv | ( | int | method = DECOMP_LU | ) | const [inherited] |
matrix inversion by means of matrix expressions
MatExpr cv::Mat::mul | ( | InputArray | m, |
double | scale = 1 |
||
) | const [inherited] |
per-element matrix multiplication by means of matrix expressions
Mat cv::Mat::cross | ( | InputArray | m | ) | const [inherited] |
computes cross-product of 2 3D vectors
double cv::Mat::dot | ( | InputArray | m | ) | const [inherited] |
computes dot-product
static MatExpr cv::Mat::zeros | ( | int | rows, |
int | cols, | ||
int | type | ||
) | [static, inherited] |
Matlab-style matrix initialization.
static MatExpr cv::Mat::zeros | ( | Size | size, |
int | type | ||
) | [static, inherited] |
static MatExpr cv::Mat::zeros | ( | int | ndims, |
const int * | sz, | ||
int | type | ||
) | [static, inherited] |
static MatExpr cv::Mat::ones | ( | int | rows, |
int | cols, | ||
int | type | ||
) | [static, inherited] |
static MatExpr cv::Mat::ones | ( | Size | size, |
int | type | ||
) | [static, inherited] |
static MatExpr cv::Mat::ones | ( | int | ndims, |
const int * | sz, | ||
int | type | ||
) | [static, inherited] |
static MatExpr cv::Mat::eye | ( | int | rows, |
int | cols, | ||
int | type | ||
) | [static, inherited] |
static MatExpr cv::Mat::eye | ( | Size | size, |
int | type | ||
) | [static, inherited] |
void cv::Mat::create | ( | int | _rows, |
int | _cols, | ||
int | _type | ||
) | [inherited] |
allocates new matrix data unless the matrix already has specified size and type.
void cv::Mat::create | ( | Size | _size, |
int | _type | ||
) | [inherited] |
void cv::Mat::create | ( | int | _ndims, |
const int * | _sizes, | ||
int | _type | ||
) | [inherited] |
void cv::Mat::addref | ( | ) | [inherited] |
increases the reference counter; use with care to avoid memleaks
void cv::Mat::release | ( | ) | [inherited] |
decreases reference counter;
void cv::Mat::deallocate | ( | ) | [inherited] |
deallocates the matrix data
void cv::Mat::copySize | ( | const Mat & | m | ) | [inherited] |
internal use function; properly re-allocates _size, _step arrays
void cv::Mat::reserve | ( | size_t | sz | ) | [inherited] |
reserves enough space to fit sz hyper-planes
void cv::Mat::resize | ( | size_t | sz | ) | [inherited] |
resizes matrix to the specified number of hyper-planes
void cv::Mat::resize | ( | size_t | sz, |
const Scalar & | s | ||
) | [inherited] |
resizes matrix to the specified number of hyper-planes; initializes the newly added elements
void cv::Mat::push_back_ | ( | const void * | elem | ) | [inherited] |
internal function
void cv::Mat::push_back | ( | const _Tp & | elem | ) | [inherited] |
adds element to the end of 1d matrix (or possibly multiple elements when _Tp=Mat)
void cv::Mat::push_back | ( | const Mat_< _Tp > & | elem | ) | [inherited] |
void cv::Mat::push_back | ( | const Mat & | m | ) | [inherited] |
void cv::Mat::pop_back | ( | size_t | nelems = 1 | ) | [inherited] |
removes several hyper-planes from bottom of the matrix
void cv::Mat::locateROI | ( | Size & | wholeSize, |
Point & | ofs | ||
) | const [inherited] |
locates matrix header within a parent matrix. See below
extracts a rectangular sub-matrix
cv::Mat::operator IplImage | ( | ) | const [inherited] |
converts header to IplImage; no data is copied
bool cv::Mat::isContinuous | ( | ) | const [inherited] |
returns true iff the matrix data is continuous
bool cv::Mat::isSubmatrix | ( | ) | const [inherited] |
returns true if the matrix is a submatrix of another matrix
bool cv::Mat::empty | ( | ) | const [inherited] |
returns true if matrix data is NULL
size_t cv::Mat::total | ( | ) | const [inherited] |
returns the total number of matrix elements
int cv::Mat::checkVector | ( | int | elemChannels, |
int | depth = -1 , |
||
bool | requireContinuous = true |
||
) | const [inherited] |
returns N if the matrix is 1-channel (N x ptdim) or ptdim-channel (1 x N) or (N x 1); negative number otherwise
_Tp * cv::Mat::ptr | ( | int | i0 = 0 | ) | [inherited] |
returns pointer to i0-th submatrix along the dimension #0
const _Tp * cv::Mat::ptr | ( | int | i0 = 0 | ) | const [inherited] |
_Tp * cv::Mat::ptr | ( | int | i0, |
int | i1 | ||
) | [inherited] |
returns pointer to (i0,i1) submatrix along the dimensions #0 and #1
const _Tp * cv::Mat::ptr | ( | int | i0, |
int | i1 | ||
) | const [inherited] |
_Tp * cv::Mat::ptr | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | [inherited] |
returns pointer to (i0,i1,i3) submatrix along the dimensions #0, #1, #2
const _Tp * cv::Mat::ptr | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | const [inherited] |
uchar * cv::Mat::ptr | ( | const int * | idx | ) | [inherited] |
returns pointer to the matrix element
const uchar * cv::Mat::ptr | ( | const int * | idx | ) | const [inherited] |
returns read-only pointer to the matrix element
uchar* cv::Mat::ptr | ( | const Vec< int, n > & | idx | ) | [inherited] |
const uchar* cv::Mat::ptr | ( | const Vec< int, n > & | idx | ) | const [inherited] |
_Tp* cv::Mat::ptr | ( | int | i0 = 0 | ) | [inherited] |
template version of the above method
const _Tp* cv::Mat::ptr | ( | int | i0 = 0 | ) | const [inherited] |
_Tp* cv::Mat::ptr | ( | int | i0, |
int | i1 | ||
) | [inherited] |
const _Tp* cv::Mat::ptr | ( | int | i0, |
int | i1 | ||
) | const [inherited] |
_Tp* cv::Mat::ptr | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | [inherited] |
const _Tp* cv::Mat::ptr | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | const [inherited] |
_Tp* cv::Mat::ptr | ( | const int * | idx | ) | [inherited] |
const _Tp* cv::Mat::ptr | ( | const int * | idx | ) | const [inherited] |
_Tp* cv::Mat::ptr | ( | const Vec< int, n > & | idx | ) | [inherited] |
const _Tp* cv::Mat::ptr | ( | const Vec< int, n > & | idx | ) | const [inherited] |
_Tp & cv::Mat::at | ( | int | i0 = 0 | ) | [inherited] |
the same as above, with the pointer dereferencing
const _Tp & cv::Mat::at | ( | int | i0 = 0 | ) | const [inherited] |
_Tp & cv::Mat::at | ( | int | i0, |
int | i1 | ||
) | [inherited] |
const _Tp & cv::Mat::at | ( | int | i0, |
int | i1 | ||
) | const [inherited] |
_Tp & cv::Mat::at | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | [inherited] |
const _Tp & cv::Mat::at | ( | int | i0, |
int | i1, | ||
int | i2 | ||
) | const [inherited] |
_Tp & cv::Mat::at | ( | const int * | idx | ) | [inherited] |
const _Tp & cv::Mat::at | ( | const int * | idx | ) | const [inherited] |
_Tp& cv::Mat::at | ( | const Vec< int, n > & | idx | ) | [inherited] |
const _Tp& cv::Mat::at | ( | const Vec< int, n > & | idx | ) | const [inherited] |
_Tp & cv::Mat::at | ( | Point | pt | ) | [inherited] |
special versions for 2D arrays (especially convenient for referencing image pixels)
const _Tp & cv::Mat::at | ( | Point | pt | ) | const [inherited] |
int cv::Mat::flags [inherited] |
includes several bit-fields:
int cv::Mat::dims [inherited] |
the matrix dimensionality, >= 2
int cv::Mat::rows [inherited] |
the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions
int cv::Mat::cols [inherited] |
uchar* cv::Mat::data [inherited] |
pointer to the data
int* cv::Mat::refcount [inherited] |
pointer to the reference counter;
uchar* cv::Mat::datastart [inherited] |
helper fields used in locateROI and adjustROI
uchar* cv::Mat::dataend [inherited] |
uchar* cv::Mat::datalimit [inherited] |
MatAllocator* cv::Mat::allocator [inherited] |
custom allocator
MSize cv::Mat::size [inherited] |
MStep cv::Mat::step [inherited] |