cv::Mat_< _Tp > Class Template Reference 核心功能 » 基本结构


Template matrix class derived from Mat . 更多...

#include <opencv2/core/mat.hpp>

Inheritance diagram for cv::Mat_< _Tp >:
cv::Mat

公共类型

typedef DataType < _Tp >:: channel_type   channel_type
 
typedef MatConstIterator_ < _Tp >  const_iterator
 
typedef MatIterator_ < _Tp >  iterator
 
typedef _Tp  value_type
 
-  Public Types inherited from cv::Mat
enum   {
   MAGIC_VAL = 0x42FF0000,
   AUTO_STEP = 0,
   CONTINUOUS_FLAG = CV_MAT_CONT_FLAG,
   SUBMATRIX_FLAG = CV_SUBMAT_FLAG
}
 
enum   {
   MAGIC_MASK = 0xFFFF0000,
   TYPE_MASK = 0x00000FFF,
   DEPTH_MASK = 7
}
 

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 constructor. 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 Mat_ &m, const std::vector< Range > &ranges)
  selects a submatrix, n-dim version 更多...
 
  Mat_ (const MatExpr &e)
  from a matrix expression 更多...
 
  Mat_ (const std::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_ (std::initializer_list< _Tp > values)
 
  Mat_ (const std::initializer_list< int > sizes, const std::initializer_list< _Tp > values)
 
template<std::size_t _Nm>
  Mat_ (const std::array< _Tp, _Nm > &arr, bool copyData=false)
 
  Mat_ ( Mat_ &&m)
 
  Mat_ ( Mat &&m)
 
  Mat_ ( MatExpr &&e)
 
Mat_ adjustROI (int dtop, int dbottom, int dleft, int dright)
  some more overridden methods 更多...
 
iterator   begin ()
  iterators; they are smart enough to skip gaps in the end of rows 更多...
 
const_iterator   begin () const
 
int  channels () const
 
Mat_   clone () const CV_NODISCARD
 
Mat_   col (int x) 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 更多...
 
int  depth () const
 
Mat_   diag (int d=0) const
 
size_t  elemSize () const
  overridden forms of Mat::elemSize() etc. 更多...
 
size_t  elemSize1 () const
 
iterator   end ()
 
const_iterator   end () const
 
template<typename Functor >
void  forEach (const Functor &operation)
  template methods for for operation over all matrix elements. 更多...
 
template<typename Functor >
void  forEach (const Functor &operation) const
 
template<typename T2 >
  operator Mat_< T2 > () const
  data type conversion 更多...
 
template<int m, int n>
  operator Matx< typename DataType< _Tp >::channel_type, m, n > () const
  conversion to Matx 更多...
 
template<std::size_t _Nm>
  operator std::array< _Tp, _Nm > () const
  conversion to array. 更多...
 
  operator std::vector< _Tp > () const
  conversion to vector. 更多...
 
template<int n>
  operator Vec< typename DataType< _Tp >::channel_type, n > () const
  conversion to Vec 更多...
 
Mat_   operator() (const Range & rowRange , const Range & colRange ) const
 
Mat_   operator() (const Rect &roi) const
 
Mat_   operator() (const Range *ranges) const
 
Mat_   operator() (const std::vector< Range > &ranges) 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 row , int col )
  returns reference to the specified element (2D case) 更多...
 
const _Tp &  operator() (int row , int col ) 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
 
Mat_ operator= (const Mat &m)
 
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 更多...
 
Mat_ operator= ( Mat_ &&m)
 
Mat_ operator= ( Mat &&m)
 
_Tp *  operator[] (int y)
  more convenient forms of row and element access operators 更多...
 
const _Tp *  operator[] (int y) const
 
void  release ()
  equivalent to Mat::release() 更多...
 
Mat_   row (int y) const
  overridden forms of Mat::row() etc. 更多...
 
size_t  step1 (int i=0) const
 
size_t  stepT (int i=0) const
  返回 step() /sizeof(_Tp) 更多...
 
int  type () const
 
-  Public Member Functions inherited from cv::Mat
  Mat ()
 
  Mat (int rows , int cols , int type )
 
  Mat ( Size size , int type )
 
  Mat (int rows , int cols , int type , const Scalar &s)
 
  Mat ( Size size , int type , const Scalar &s)
 
  Mat (int ndims, const int *sizes, int type )
 
  Mat (const std::vector< int > &sizes, int type )
 
  Mat (int ndims, const int *sizes, int type , const Scalar &s)
 
  Mat (const std::vector< int > &sizes, int type , const Scalar &s)
 
  Mat (const Mat &m)
 
  Mat (int rows , int cols , int type , void * data , size_t step = AUTO_STEP )
 
  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 std::vector< int > &sizes, int type , void * data , const size_t *steps=0)
 
  Mat (const Mat &m, const Range & rowRange , const Range & colRange = Range::all ())
 
  Mat (const Mat &m, const Rect &roi)
 
  Mat (const Mat &m, const Range *ranges)
 
  Mat (const Mat &m, const std::vector< Range > &ranges)
 
template<typename _Tp >
  Mat (const std::vector< _Tp > &vec, bool copyData=false)
 
template<typename _Tp , typename = typename std::enable_if<std::is_arithmetic<_Tp>::value>::type>
  Mat (const std::initializer_list< _Tp > list)
 
template<typename _Tp >
  Mat (const std::initializer_list< int > sizes, const std::initializer_list< _Tp > list)
 
template<typename _Tp , size_t _Nm>
  Mat (const std::array< _Tp, _Nm > &arr, bool copyData=false)
 
template<typename _Tp , int n>
  Mat (const Vec < _Tp, n > &vec, bool copyData=true)
 
template<typename _Tp , int m, int n>
  Mat (const Matx < _Tp, m, n > &mtx, bool copyData=true)
 
template<typename _Tp >
  Mat (const Point_ < _Tp > &pt, bool copyData=true)
 
template<typename _Tp >
  Mat (const Point3_ < _Tp > &pt, bool copyData=true)
 
template<typename _Tp >
  Mat (const MatCommaInitializer_ < _Tp > &commaInitializer)
 
  Mat (const cuda::GpuMat &m)
  download data from GpuMat 更多...
 
  Mat ( Mat &&m)
 
  ~Mat ()
  destructor - calls release() 更多...
 
void  addref ()
  Increments the reference counter. 更多...
 
Mat adjustROI (int dtop, int dbottom, int dleft, int dright)
  Adjusts a submatrix size and position within the parent matrix. 更多...
 
void  assignTo ( Mat &m, int type =-1) const
  Provides a functional form of convertTo. 更多...
 
template<typename _Tp >
_Tp &  at (int i0=0)
  Returns a reference to the specified array element. 更多...
 
template<typename _Tp >
const _Tp &  at (int i0=0) const
 
template<typename _Tp >
_Tp &  at (int row , int col )
 
template<typename _Tp >
const _Tp &  at (int row , int col ) 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)
 
template<typename _Tp >
const _Tp &  at ( Point pt) const
 
template<typename _Tp >
MatIterator_ < _Tp >  begin ()
  Returns the matrix iterator and sets it to the first matrix element. 更多...
 
template<typename _Tp >
MatConstIterator_ < _Tp >  begin () const
 
int  channels () const
  Returns the number of matrix channels. 更多...
 
int  checkVector (int elemChannels, int depth =-1, bool requireContinuous=true) const
 
Mat   clone () const CV_NODISCARD
  Creates a full copy of the array and the underlying data. 更多...
 
Mat   col (int x) const
  Creates a matrix header for the specified matrix column. 更多...
 
Mat   colRange (int startcol, int endcol) const
  Creates a matrix header for the specified column span. 更多...
 
Mat   colRange (const Range &r) const
 
void  convertTo ( OutputArray m, int rtype, double alpha=1, double beta=0) const
  Converts an array to another data type with optional scaling. 更多...
 
void  copySize (const Mat &m)
  internal use function; properly re-allocates _size, _step arrays 更多...
 
void  copyTo ( OutputArray m) const
  Copies the matrix to another one. 更多...
 
void  copyTo ( OutputArray m, InputArray mask) const
 
void  create (int rows , int cols , int type )
  Allocates new array data if needed. 更多...
 
void  create ( Size size , int type )
 
void  create (int ndims, const int *sizes, int type )
 
void  create (const std::vector< int > &sizes, int type )
 
Mat   cross ( InputArray m) const
  Computes a cross-product of two 3-element vectors. 更多...
 
void  deallocate ()
  internal use function, consider to use 'release' method instead; deallocates the matrix data 更多...
 
int  depth () const
  Returns the depth of a matrix element. 更多...
 
Mat   diag (int d=0) const
  Extracts a diagonal from a matrix. 更多...
 
double  dot ( InputArray m) const
  Computes a dot-product of two vectors. 更多...
 
size_t  elemSize () const
  Returns the matrix element size in bytes. 更多...
 
size_t  elemSize1 () const
  Returns the size of each matrix element channel in bytes. 更多...
 
bool  empty () const
  Returns true if the array has no elements. 更多...
 
template<typename _Tp >
MatIterator_ < _Tp >  end ()
  Returns the matrix iterator and sets it to the after-last matrix element. 更多...
 
template<typename _Tp >
MatConstIterator_ < _Tp >  end () const
 
template<typename _Tp , typename Functor >
void  forEach (const Functor &operation)
  Runs the given functor over all matrix elements in parallel. 更多...
 
template<typename _Tp , typename Functor >
void  forEach (const Functor &operation) const
 
UMat   getUMat ( AccessFlag accessFlags, UMatUsageFlags usageFlags= USAGE_DEFAULT ) const
  retrieve UMat from Mat 更多...
 
MatExpr   inv (int method= DECOMP_LU ) const
  Inverses a matrix. 更多...
 
bool  isContinuous () const
  Reports whether the matrix is continuous or not. 更多...
 
bool  isSubmatrix () const
  returns true if the matrix is a submatrix of another matrix 更多...
 
void  locateROI ( Size &wholeSize, Point &ofs) const
  Locates the matrix header within a parent matrix. 更多...
 
MatExpr   mul ( InputArray m, double scale=1) const
  Performs an element-wise multiplication or division of the two matrices. 更多...
 
template<typename _Tp , int m, int n>
  operator Matx< _Tp, m, n > () const
 
template<typename _Tp , std::size_t _Nm>
  operator std::array< _Tp, _Nm > () const
 
template<typename _Tp >
  operator std::vector< _Tp > () const
 
template<typename _Tp , int n>
  operator Vec< _Tp, n > () const
 
Mat   operator() ( Range rowRange , Range colRange ) const
  Extracts a rectangular submatrix. 更多...
 
Mat   operator() (const Rect &roi) const
 
Mat   operator() (const Range *ranges) const
 
Mat   operator() (const std::vector< Range > &ranges) const
 
Mat operator= (const Mat &m)
  assignment operators 更多...
 
Mat operator= (const MatExpr &expr)
 
Mat operator= (const Scalar &s)
  Sets all or some of the array elements to the specified value. 更多...
 
Mat operator= ( Mat &&m)
 
void  pop_back (size_t nelems=1)
  Removes elements from the bottom of the matrix. 更多...
 
uchar ptr (int i0=0)
  Returns a pointer to the specified matrix row. 更多...
 
const uchar ptr (int i0=0) const
 
uchar ptr (int row , int col )
 
const uchar ptr (int row , int col ) const
 
uchar ptr (int i0, int i1, int i2)
 
const uchar ptr (int i0, int i1, int i2) const
 
uchar ptr (const int *idx)
 
const uchar ptr (const int *idx) const
 
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<typename _Tp >
const _Tp *  ptr (int i0=0) const
 
template<typename _Tp >
_Tp *  ptr (int row , int col )
 
template<typename _Tp >
const _Tp *  ptr (int row , int col ) 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 >
void  push_back (const _Tp &elem)
  Adds elements to the bottom of the matrix. 更多...
 
template<typename _Tp >
void  push_back (const Mat_ < _Tp > &elem)
 
template<typename _Tp >
void  push_back (const std::vector< _Tp > &elem)
 
void  push_back (const Mat &m)
 
void  push_back_ (const void *elem)
  internal function 更多...
 
void  release ()
  Decrements the reference counter and deallocates the matrix if needed. 更多...
 
void  reserve (size_t sz)
  Reserves space for the certain number of rows. 更多...
 
void  reserveBuffer (size_t sz)
  Reserves space for the certain number of bytes. 更多...
 
Mat   reshape (int cn, int rows =0) const
  Changes the shape and/or the number of channels of a 2D matrix without copying the data. 更多...
 
Mat   reshape (int cn, int newndims, const int *newsz) const
 
Mat   reshape (int cn, const std::vector< int > &newshape) const
 
void  resize (size_t sz)
  Changes the number of matrix rows. 更多...
 
void  resize (size_t sz, const Scalar &s)
 
Mat   row (int y) const
  Creates a matrix header for the specified matrix row. 更多...
 
Mat   rowRange (int startrow, int endrow) const
  Creates a matrix header for the specified row span. 更多...
 
Mat   rowRange (const Range &r) const
 
Mat setTo ( InputArray value, InputArray mask= noArray ())
  Sets all or some of the array elements to the specified value. 更多...
 
size_t  step1 (int i=0) const
  Returns a normalized step. 更多...
 
MatExpr   t () const
  Transposes a matrix. 更多...
 
size_t  total () const
  Returns the total number of array elements. 更多...
 
size_t  total (int startDim, int endDim=INT_MAX) const
  Returns the total number of array elements. 更多...
 
int  type () const
  Returns the type of a matrix element. 更多...
 
void  updateContinuityFlag ()
  internal use method: updates the continuity flag 更多...
 

Static Public Member Functions

static MatExpr   eye (int rows , int cols )
 
static MatExpr   eye ( Size size )
 
static MatExpr   ones (int rows , int cols )
 
static MatExpr   ones ( Size size )
 
static MatExpr   ones (int _ndims, const int *_sizes)
 
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 Public Member Functions inherited from cv::Mat
static Mat   diag (const Mat &d)
  creates a diagonal matrix 更多...
 
static MatExpr   eye (int rows , int cols , int type )
  Returns an identity matrix of the specified size and type. 更多...
 
static MatExpr   eye ( Size size , int type )
 
static MatAllocator getDefaultAllocator ()
 
static MatAllocator getStdAllocator ()
  and the standard allocator 更多...
 
static MatExpr   ones (int rows , int cols , int type )
  Returns an array of all 1's of the specified size and type. 更多...
 
static MatExpr   ones ( Size size , int type )
 
static MatExpr   ones (int ndims, const int *sz, int type )
 
static void  setDefaultAllocator ( MatAllocator * allocator )
 
static MatExpr   zeros (int rows , int cols , int type )
  Returns a zero array of the specified size and type. 更多...
 
static MatExpr   zeros ( Size size , int type )
 
static MatExpr   zeros (int ndims, const int *sz, int type )
 

额外继承成员

-  Public Attributes inherited from cv::Mat
MatAllocator allocator
  custom allocator 更多...
 
int  cols
 
uchar data
  pointer to the data 更多...
 
const uchar dataend
 
const uchar datalimit
 
const uchar datastart
  helper fields used in locateROI and adjustROI 更多...
 
int  dims
  the matrix dimensionality, >= 2 更多...
 
int  flags
 
int  rows
  the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions 更多...
 
MatSize   size
 
MatStep   step
 
UMatData u
  interaction with UMat 更多...
 
-  Protected Member Functions inherited from cv::Mat
template<typename _Tp , typename Functor >
void  forEach_impl (const Functor &operation)
 

详细描述

template<typename _Tp>
class cv::Mat_< _Tp >

Template matrix class derived from Mat .

template < typename _Tp> class Mat_ : public Mat
{
public :
// ... some specific methods
// and
// no new extra fields
};

The class Mat_ <_Tp> thin template wrapper on top of the Mat class. It does not have any extra data fields. Nor this class nor Mat has any virtual methods. Thus, references or pointers to these two classes can be freely but carefully converted one to another. For example:

// create a 100x100 8-bit matrix
Mat M(100,100, CV_8U );
// this will be compiled fine. no any data conversion will be done.
Mat_<float>& M1 = (Mat_<float>&)M;
// the program is likely to crash at the statement below
M1(99,99) = 1.f;

While Mat is sufficient in most cases, Mat_ can be more convenient if you use a lot of element access operations and if you know matrix type at the compilation time. Note that Mat::at(int y,int x) and Mat_::operator()(int y,int x) do absolutely the same 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);

要使用 Mat_ for multi-channel images/matrices, pass Vec as a Mat_ parameter:

// allocate a 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 scramble 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);

Mat_ is fully compatible with C++11 range-based for loop. For example such loop can be used to safely apply look-up table:

void applyTable(Mat_<uchar>& I, const uchar * const table)
{
for ( auto & pixel : I)
{
pixel = table[pixel];
}
}

Member Typedef Documentation

◆  channel_type

template<typename _Tp>
typedef DataType <_Tp>:: channel_type cv::Mat_ < _Tp >:: channel_type

◆  const_iterator

template<typename _Tp>
typedef MatConstIterator_ <_Tp> cv::Mat_ < _Tp >:: const_iterator

◆  iterator

template<typename _Tp>
typedef MatIterator_ <_Tp> cv::Mat_ < _Tp >:: iterator

◆  value_type

template<typename _Tp>
typedef _Tp cv::Mat_ < _Tp >:: value_type

Constructor & Destructor Documentation

◆  Mat_() [1/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( )

default constructor

◆  Mat_() [2/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( int  _rows ,
int  _cols  
)

equivalent to Mat(_rows, _cols, DataType<_Tp>::type)

◆  Mat_() [3/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( int  _rows ,
int  _cols ,
const _Tp &  value  
)

constructor that sets each matrix element to specified value

◆  Mat_() [4/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( Size   _size )
explicit

equivalent to Mat(_size, DataType<_Tp>::type)

◆  Mat_() [5/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( Size   _size ,
const _Tp &  value  
)

constructor that sets each matrix element to specified value

◆  Mat_() [6/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( int  _ndims ,
const int *  _sizes  
)

n-dim array constructor

◆  Mat_() [7/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( int  _ndims ,
const int *  _sizes ,
const _Tp &  value  
)

n-dim array constructor that sets each matrix element to specified value

◆  Mat_() [8/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Mat m )

copy/conversion constructor. If m is of different type, it's converted

◆  Mat_() [9/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Mat_ < _Tp > &  m )

copy constructor

◆  Mat_() [10/28]

template<typename _Tp>
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

◆  Mat_() [11/28]

template<typename _Tp>
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

◆  Mat_() [12/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Mat_ < _Tp > &  m ,
const Range rowRange ,
const Range colRange = Range::all ()  
)

selects a submatrix

◆  Mat_() [13/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Mat_ < _Tp > &  m ,
const Rect roi  
)

selects a submatrix

◆  Mat_() [14/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Mat_ < _Tp > &  m ,
const Range ranges  
)

selects a submatrix, n-dim version

◆  Mat_() [15/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Mat_ < _Tp > &  m ,
const std::vector< Range > &  ranges  
)

selects a submatrix, n-dim version

◆  Mat_() [16/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const MatExpr e )
explicit

from a matrix expression

◆  Mat_() [17/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const std::vector< _Tp > &  vec ,
bool  copyData = false  
)
explicit

makes a matrix out of Vec , std::vector, Point_ or Point3_ . The matrix will have a single column

◆  Mat_() [18/28]

template<typename _Tp>
template<int n>
cv::Mat_ < _Tp >:: Mat_ ( const Vec < typename DataType < _Tp >:: channel_type , n > &  vec ,
bool  copyData = true  
)
explicit

◆  Mat_() [19/28]

template<typename _Tp>
template<int m, int n>
cv::Mat_ < _Tp >:: Mat_ ( const Matx < typename DataType < _Tp >:: channel_type , m, n > &  mtx ,
bool  copyData = true  
)
explicit

◆  Mat_() [20/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Point_ < typename DataType < _Tp >:: channel_type > &  pt ,
bool  copyData = true  
)
explicit

◆  Mat_() [21/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const Point3_ < typename DataType < _Tp >:: channel_type > &  pt ,
bool  copyData = true  
)
explicit

◆  Mat_() [22/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const MatCommaInitializer_ < _Tp > &  commaInitializer )
explicit

◆  Mat_() [23/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( std::initializer_list< _Tp >  values )

◆  Mat_() [24/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( const std::initializer_list< int >  sizes ,
const std::initializer_list< _Tp >  values  
)
explicit

◆  Mat_() [25/28]

template<typename _Tp>
template<std::size_t _Nm>
cv::Mat_ < _Tp >:: Mat_ ( const std::array< _Tp, _Nm > &  arr ,
bool  copyData = false  
)
explicit

◆  Mat_() [26/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( Mat_ < _Tp > &&  m )

◆  Mat_() [27/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( Mat &&  m )

◆  Mat_() [28/28]

template<typename _Tp>
cv::Mat_ < _Tp >:: Mat_ ( MatExpr &&  e )

成员函数文档编制

◆  adjustROI()

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::adjustROI ( int  dtop ,
int  dbottom ,
int  dleft ,
int  dright  
)

some more overridden methods

◆  begin() [1/2]

template<typename _Tp>
iterator cv::Mat_ < _Tp >::begin ( )

iterators; they are smart enough to skip gaps in the end of rows

◆  begin() [2/2]

template<typename _Tp>
const_iterator cv::Mat_ < _Tp >::begin ( ) const

◆  channels()

template<typename _Tp>
int cv::Mat_ < _Tp >::channels ( ) const

◆  clone()

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::clone ( ) const

◆  col()

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::col ( int  x ) const

◆  create() [1/3]

template<typename _Tp>
void cv::Mat_ < _Tp >::create ( int  _rows ,
int  _cols  
)

equivalent to Mat::create(_rows, _cols, DataType<_Tp>::type)

◆  create() [2/3]

template<typename _Tp>
void cv::Mat_ < _Tp >::create ( Size   _size )

equivalent to Mat::create(_size, DataType<_Tp>::type)

◆  create() [3/3]

template<typename _Tp>
void cv::Mat_ < _Tp >::create ( int  _ndims ,
const int *  _sizes  
)

equivalent to Mat::create(_ndims, _sizes, DatType<_Tp>::type)

◆  cross()

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::cross ( const Mat_ < _Tp > &  m ) const

cross-product

◆  depth()

template<typename _Tp>
int cv::Mat_ < _Tp >::depth ( ) const

◆  diag()

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::diag ( int  d = 0 ) const

◆  elemSize()

template<typename _Tp>
size_t cv::Mat_ < _Tp >::elemSize ( ) const

overridden forms of Mat::elemSize() etc.

◆  elemSize1()

template<typename _Tp>
size_t cv::Mat_ < _Tp >::elemSize1 ( ) const

◆  end() [1/2]

template<typename _Tp>
iterator cv::Mat_ < _Tp >::end ( )

◆  end() [2/2]

template<typename _Tp>
const_iterator cv::Mat_ < _Tp >::end ( ) const

◆  eye() [1/2]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::eye ( int  rows ,
int  cols  
)
static

◆  eye() [2/2]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::eye ( Size   size )
static

◆  forEach() [1/2]

template<typename _Tp>
template<typename Functor >
void cv::Mat_ < _Tp >::forEach ( const Functor &  operation )

template methods for for operation over all matrix elements.

◆  forEach() [2/2]

template<typename _Tp>
template<typename Functor >
void cv::Mat_ < _Tp >::forEach ( const Functor &  operation ) const

◆  ones() [1/3]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::ones ( int  rows ,
int  cols  
)
static

◆  ones() [2/3]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::ones ( Size   size )
static

◆  ones() [3/3]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::ones ( int  _ndims ,
const int *  _sizes  
)
static

◆  operator Mat_ < T2 > ()

template<typename _Tp>
template<typename T2 >
cv::Mat_ < _Tp >::operator Mat_ < T2 > ( ) const

data type conversion

◆  operator Matx < typename DataType< _Tp > ::channel_type, m, n >()

template<typename _Tp>
template<int m, int n>
cv::Mat_ < _Tp >::operator Matx < typename DataType < _Tp >:: channel_type , m, n > ( ) const

conversion to Matx

◆  operator std::array < _Tp, _Nm > ()

template<typename _Tp>
template<std::size_t _Nm>
cv::Mat_ < _Tp >::operator std::array< _Tp, _Nm > ( ) const

conversion to array.

◆  operator std::vector < _Tp > ()

template<typename _Tp>
cv::Mat_ < _Tp >::operator std::vector< _Tp > ( ) const

conversion to vector.

◆  operator Vec < typename DataType< _Tp > ::channel_type, n >()

template<typename _Tp>
template<int n>
cv::Mat_ < _Tp >::operator Vec < typename DataType < _Tp >:: channel_type , n > ( ) const

conversion to Vec

◆  operator()() [1/16]

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::operator() ( const Range rowRange ,
const Range colRange  
) const

◆  operator()() [2/16]

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::operator() ( const Rect roi ) const

◆  operator()() [3/16]

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::operator() ( const Range ranges ) const

◆  operator()() [4/16]

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::operator() ( const std::vector< Range > &  ranges ) const

◆  operator()() [5/16]

template<typename _Tp>
_Tp& cv::Mat_ < _Tp >::operator() ( const int *  idx )

returns reference to the specified element

◆  operator()() [6/16]

template<typename _Tp>
const _Tp& cv::Mat_ < _Tp >::operator() ( const int *  idx ) const

returns read-only reference to the specified element

◆  operator()() [7/16]

template<typename _Tp>
template<int n>
_Tp& cv::Mat_ < _Tp >::operator() ( const Vec < int, n > &  idx )

returns reference to the specified element

◆  operator()() [8/16]

template<typename _Tp>
template<int n>
const _Tp& cv::Mat_ < _Tp >::operator() ( const Vec < int, n > &  idx ) const

returns read-only reference to the specified element

◆  operator()() [9/16]

template<typename _Tp>
_Tp& cv::Mat_ < _Tp >::operator() ( int  idx0 )

returns reference to the specified element (1D case)

◆  operator()() [10/16]

template<typename _Tp>
const _Tp& cv::Mat_ < _Tp >::operator() ( int  idx0 ) const

returns read-only reference to the specified element (1D case)

◆  operator()() [11/16]

template<typename _Tp>
_Tp& cv::Mat_ < _Tp >::operator() ( int  row ,
int  col  
)

returns reference to the specified element (2D case)

◆  operator()() [12/16]

template<typename _Tp>
const _Tp& cv::Mat_ < _Tp >::operator() ( int  row ,
int  col  
) const

returns read-only reference to the specified element (2D case)

◆  operator()() [13/16]

template<typename _Tp>
_Tp& cv::Mat_ < _Tp >::operator() ( int  idx0 ,
int  idx1 ,
int  idx2  
)

returns reference to the specified element (3D case)

◆  operator()() [14/16]

template<typename _Tp>
const _Tp& cv::Mat_ < _Tp >::operator() ( int  idx0 ,
int  idx1 ,
int  idx2  
) const

returns read-only reference to the specified element (3D case)

◆  operator()() [15/16]

template<typename _Tp>
_Tp& cv::Mat_ < _Tp >::operator() ( Point   pt )

◆  operator()() [16/16]

template<typename _Tp>
const _Tp& cv::Mat_ < _Tp >::operator() ( Point   pt ) const

◆  operator=() [1/6]

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::operator= ( const Mat m )

◆  operator=() [2/6]

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::operator= ( const Mat_ < _Tp > &  m )

◆  operator=() [3/6]

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::operator= ( const _Tp &  s )

set all the elements to s.

◆  operator=() [4/6]

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::operator= ( const MatExpr e )

assign a matrix expression

◆  operator=() [5/6]

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::operator= ( Mat_ < _Tp > &&  m )

◆  operator=() [6/6]

template<typename _Tp>
Mat_ & cv::Mat_ < _Tp >::operator= ( Mat &&  m )

◆  operator[]() [1/2]

template<typename _Tp>
_Tp* cv::Mat_ < _Tp >::operator[] ( int  y )

more convenient forms of row and element access operators

◆  operator[]() [2/2]

template<typename _Tp>
const _Tp* cv::Mat_ < _Tp >::operator[] ( int  y ) const

◆  release()

template<typename _Tp>
void cv::Mat_ < _Tp >::release ( )

equivalent to Mat::release()

◆  row()

template<typename _Tp>
Mat_ cv::Mat_ < _Tp >::row ( int  y ) const

overridden forms of Mat::row() etc.

◆  step1()

template<typename _Tp>
size_t cv::Mat_ < _Tp >::step1 ( int  i = 0 ) const

◆  stepT()

template<typename _Tp>
size_t cv::Mat_ < _Tp >::stepT ( int  i = 0 ) const

返回 step() /sizeof(_Tp)

◆  type()

template<typename _Tp>
int cv::Mat_ < _Tp >::type ( ) const

◆  zeros() [1/3]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::zeros ( int  rows ,
int  cols  
)
static

overridden forms of Mat::zeros() etc. Data type is omitted, of course

范例:
samples/cpp/filestorage.cpp .

◆  zeros() [2/3]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::zeros ( Size   size )
static

◆  zeros() [3/3]

template<typename _Tp>
static MatExpr cv::Mat_ < _Tp >::zeros ( int  _ndims ,
const int *  _sizes  
)
static

The documentation for this class was generated from the following file: