|
| Mat_ () |
| default constructor More...
|
|
| Mat_ (int _rows, int _cols) |
| equivalent to Mat(_rows, _cols, DataType<_Tp>::type) More...
|
|
| Mat_ (int _rows, int _cols, const _Tp &value) |
| constructor that sets each matrix element to specified value More...
|
|
| Mat_ (Size _size) |
| equivalent to Mat(_size, DataType<_Tp>::type) More...
|
|
| Mat_ (Size _size, const _Tp &value) |
| constructor that sets each matrix element to specified value More...
|
|
| Mat_ (int _ndims, const int *_sizes) |
| n-dim array constructor More...
|
|
| Mat_ (int _ndims, const int *_sizes, const _Tp &value) |
| n-dim array constructor that sets each matrix element to specified value More...
|
|
| Mat_ (const Mat &m) |
| copy/conversion contructor. If m is of different type, it's converted More...
|
|
| Mat_ (const Mat_ &m) |
| copy constructor More...
|
|
| 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 More...
|
|
| 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 More...
|
|
| Mat_ (const Mat_ &m, const Range &rowRange, const Range &colRange=Range::all()) |
| selects a submatrix More...
|
|
| Mat_ (const Mat_ &m, const Rect &roi) |
| selects a submatrix More...
|
|
| Mat_ (const Mat_ &m, const Range *ranges) |
| selects a submatrix, n-dim version More...
|
|
| Mat_ (const MatExpr &e) |
| from a matrix expression More...
|
|
| 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 More...
|
|
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) |
|
Mat_ & | operator= (const Mat_ &m) |
|
Mat_ & | operator= (const _Tp &s) |
| set all the elements to s. More...
|
|
Mat_ & | operator= (const MatExpr &e) |
| assign a matrix expression More...
|
|
iterator | begin () |
| iterators; they are smart enough to skip gaps in the end of rows More...
|
|
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) More...
|
|
void | create (Size _size) |
| equivalent to Mat::create(_size, DataType<_Tp>::type) More...
|
|
void | create (int _ndims, const int *_sizes) |
| equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type) More...
|
|
Mat_ | cross (const Mat_ &m) const |
| cross-product More...
|
|
template<typename T2 > |
| operator Mat_< T2 > () const |
| data type conversion More...
|
|
Mat_ | row (int y) const |
| overridden forms of Mat::row() etc. More...
|
|
Mat_ | col (int x) const |
|
Mat_ | diag (int d=0) const |
|
Mat_ | clone () const |
|
size_t | elemSize () const |
| overridden forms of Mat::elemSize() etc. More...
|
|
size_t | elemSize1 () const |
|
int | type () const |
|
int | depth () const |
|
int | channels () const |
|
size_t | step1 (int i=0) const |
|
size_t | stepT (int i=0) const |
| returns step()/sizeof(_Tp) More...
|
|
Mat_ & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
| some more overriden methods More...
|
|
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 More...
|
|
const _Tp * | operator[] (int y) const |
|
_Tp & | operator() (const int *idx) |
| returns reference to the specified element More...
|
|
const _Tp & | operator() (const int *idx) const |
| returns read-only reference to the specified element More...
|
|
template<int n> |
_Tp & | operator() (const Vec< int, n > &idx) |
| returns reference to the specified element More...
|
|
template<int n> |
const _Tp & | operator() (const Vec< int, n > &idx) const |
| returns read-only reference to the specified element More...
|
|
_Tp & | operator() (int idx0) |
| returns reference to the specified element (1D case) More...
|
|
const _Tp & | operator() (int idx0) const |
| returns read-only reference to the specified element (1D case) More...
|
|
_Tp & | operator() (int idx0, int idx1) |
| returns reference to the specified element (2D case) More...
|
|
const _Tp & | operator() (int idx0, int idx1) const |
| returns read-only reference to the specified element (2D case) More...
|
|
_Tp & | operator() (int idx0, int idx1, int idx2) |
| returns reference to the specified element (3D case) More...
|
|
const _Tp & | operator() (int idx0, int idx1, int idx2) const |
| returns read-only reference to the specified element (3D case) More...
|
|
_Tp & | operator() (Point pt) |
|
const _Tp & | operator() (Point pt) const |
|
| operator vector< _Tp > () const |
| conversion to vector. More...
|
|
template<int n> |
| operator Vec< typename DataType< _Tp >::channel_type, n > () const |
| conversion to Vec More...
|
|
template<int m, int n> |
| operator Matx< typename DataType< _Tp >::channel_type, m, n > () const |
| conversion to Matx More...
|
|
| Mat () |
| default constructor More...
|
|
| Mat (int rows, int cols, int type) |
| constructs 2D matrix of the specified size and type More...
|
|
| Mat (Size size, int type) |
|
| Mat (int rows, int cols, int type, const Scalar &s) |
| constucts 2D matrix and fills it with the specified value _s. More...
|
|
| Mat (Size size, int type, const Scalar &s) |
|
| Mat (int ndims, const int *sizes, int type) |
| constructs n-dimensional matrix More...
|
|
| Mat (int ndims, const int *sizes, int type, const Scalar &s) |
|
| Mat (const Mat &m) |
| copy constructor More...
|
|
| Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP) |
| constructor for matrix headers pointing to user-allocated data More...
|
|
| Mat (Size size, int type, void *data, size_t step=AUTO_STEP) |
|
| Mat (int ndims, const int *sizes, int type, void *data, const size_t *steps=0) |
|
| Mat (const Mat &m, const Range &rowRange, const Range &colRange=Range::all()) |
| creates a matrix header for a part of the bigger matrix More...
|
|
| Mat (const Mat &m, const Rect &roi) |
|
| Mat (const Mat &m, const Range *ranges) |
|
| Mat (const CvMat *m, bool copyData=false) |
| converts old-style CvMat to the new matrix; the data is not copied by default More...
|
|
| Mat (const CvMatND *m, bool copyData=false) |
| converts old-style CvMatND to the new matrix; the data is not copied by default More...
|
|
| Mat (const IplImage *img, bool copyData=false) |
| converts old-style IplImage to the new matrix; the data is not copied by default More...
|
|
template<typename _Tp > |
| Mat (const vector< _Tp > &vec, bool copyData=false) |
| builds matrix from std::vector with or without copying the data More...
|
|
template<typename _Tp , int n> |
| Mat (const Vec< _Tp, n > &vec, bool copyData=true) |
| builds matrix from cv::Vec; the data is copied by default More...
|
|
template<typename _Tp , int m, int n> |
| Mat (const Matx< _Tp, m, n > &mtx, bool copyData=true) |
| builds matrix from cv::Matx; the data is copied by default More...
|
|
template<typename _Tp > |
| Mat (const Point_< _Tp > &pt, bool copyData=true) |
| builds matrix from a 2D point More...
|
|
template<typename _Tp > |
| Mat (const Point3_< _Tp > &pt, bool copyData=true) |
| builds matrix from a 3D point More...
|
|
template<typename _Tp > |
| Mat (const MatCommaInitializer_< _Tp > &commaInitializer) |
| builds matrix from comma initializer More...
|
|
| Mat (const gpu::GpuMat &m) |
| download data from GpuMat More...
|
|
| ~Mat () |
| destructor - calls release() More...
|
|
Mat & | operator= (const Mat &m) |
| assignment operators More...
|
|
Mat & | operator= (const MatExpr &expr) |
|
Mat | row (int y) const |
| returns a new matrix header for the specified row More...
|
|
Mat | col (int x) const |
| returns a new matrix header for the specified column More...
|
|
Mat | rowRange (int startrow, int endrow) const |
| ... for the specified row span More...
|
|
Mat | rowRange (const Range &r) const |
|
Mat | colRange (int startcol, int endcol) const |
| ... for the specified column span More...
|
|
Mat | colRange (const Range &r) const |
|
Mat | diag (int d=0) const |
| ... for the specified diagonal More...
|
|
Mat | clone () const |
| returns deep copy of the matrix, i.e. the data is copied More...
|
|
void | copyTo (OutputArray m) const |
| copies the matrix content to "m". More...
|
|
void | copyTo (OutputArray m, InputArray mask) const |
| copies those matrix elements to "m" that are marked with non-zero mask elements. More...
|
|
void | convertTo (OutputArray m, int rtype, double alpha=1, double beta=0) const |
| converts matrix to another datatype with optional scalng. See cvConvertScale. More...
|
|
void | assignTo (Mat &m, int type=-1) const |
|
Mat & | operator= (const Scalar &s) |
| sets every matrix element to s More...
|
|
Mat & | setTo (InputArray value, InputArray mask=noArray()) |
| sets some of the matrix elements to s, according to the mask More...
|
|
Mat | reshape (int cn, int rows=0) const |
| creates alternative matrix header for the same data, with different More...
|
|
Mat | reshape (int cn, int newndims, const int *newsz) const |
|
MatExpr | t () const |
| matrix transposition by means of matrix expressions More...
|
|
MatExpr | inv (int method=DECOMP_LU) const |
| matrix inversion by means of matrix expressions More...
|
|
MatExpr | mul (InputArray m, double scale=1) const |
| per-element matrix multiplication by means of matrix expressions More...
|
|
Mat | cross (InputArray m) const |
| computes cross-product of 2 3D vectors More...
|
|
double | dot (InputArray m) const |
| computes dot-product More...
|
|
void | create (int rows, int cols, int type) |
| allocates new matrix data unless the matrix already has specified size and type. More...
|
|
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 More...
|
|
void | release () |
| decreases reference counter; More...
|
|
void | deallocate () |
| deallocates the matrix data More...
|
|
void | copySize (const Mat &m) |
| internal use function; properly re-allocates _size, _step arrays More...
|
|
void | reserve (size_t sz) |
| reserves enough space to fit sz hyper-planes More...
|
|
void | resize (size_t sz) |
| resizes matrix to the specified number of hyper-planes More...
|
|
void | resize (size_t sz, const Scalar &s) |
| resizes matrix to the specified number of hyper-planes; initializes the newly added elements More...
|
|
void | push_back_ (const void *elem) |
| internal function More...
|
|
template<typename _Tp > |
void | push_back (const _Tp &elem) |
| adds element to the end of 1d matrix (or possibly multiple elements when _Tp=Mat) More...
|
|
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 More...
|
|
void | locateROI (Size &wholeSize, Point &ofs) const |
| locates matrix header within a parent matrix. See below More...
|
|
Mat & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
| moves/resizes the current matrix ROI inside the parent matrix. More...
|
|
Mat | operator() (Range rowRange, Range colRange) const |
| extracts a rectangular sub-matrix More...
|
|
Mat | operator() (const Rect &roi) const |
|
Mat | operator() (const Range *ranges) const |
|
| operator CvMat () const |
| converts header to CvMat; no data is copied More...
|
|
| operator CvMatND () const |
| converts header to CvMatND; no data is copied More...
|
|
| operator IplImage () const |
| converts header to IplImage; no data is copied More...
|
|
template<typename _Tp > |
| operator vector< _Tp > () const |
|
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 More...
|
|
bool | isSubmatrix () const |
| returns true if the matrix is a submatrix of another matrix More...
|
|
size_t | elemSize () const |
| returns element size in bytes, More...
|
|
size_t | elemSize1 () const |
| returns the size of element channel in bytes. More...
|
|
int | type () const |
| returns element type, similar to CV_MAT_TYPE(cvmat->type) More...
|
|
int | depth () const |
| returns element type, similar to CV_MAT_DEPTH(cvmat->type) More...
|
|
int | channels () const |
| returns element type, similar to CV_MAT_CN(cvmat->type) More...
|
|
size_t | step1 (int i=0) const |
| returns step/elemSize1() More...
|
|
bool | empty () const |
| returns true if matrix data is NULL More...
|
|
size_t | total () const |
| returns the total number of matrix elements More...
|
|
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 More...
|
|
uchar * | ptr (int i0=0) |
| returns pointer to i0-th submatrix along the dimension #0 More...
|
|
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 More...
|
|
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 More...
|
|
const uchar * | ptr (int i0, int i1, int i2) const |
|
uchar * | ptr (const int *idx) |
| returns pointer to the matrix element More...
|
|
const uchar * | ptr (const int *idx) const |
| returns read-only pointer to the matrix element More...
|
|
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 More...
|
|
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 More...
|
|
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) More...
|
|
template<typename _Tp > |
const _Tp & | at (Point pt) const |
|
template<typename _Tp > |
MatIterator_< _Tp > | begin () |
| template methods for iteration over matrix elements. More...
|
|
template<typename _Tp > |
MatIterator_< _Tp > | end () |
|
template<typename _Tp > |
MatConstIterator_< _Tp > | begin () const |
|
template<typename _Tp > |
MatConstIterator_< _Tp > | end () const |
|
template<typename _Tp>
class cv::Mat_< _Tp >
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:
Mat_<float>& M1 = (Mat_<float>&)M;
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);
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:
Mat_<Vec3b> img(240, 320,
Vec3b(0,255,0));
for(int i = 0; i < 100; i++)
img(i,i)=
Vec3b(255,255,255);
for(int i = 0; i < img.rows; i++)
for(int j = 0; j < img.cols; j++)
img(i,j)[2] ^= (
uchar)(i ^ j);