OpenCV: cv::UMat Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
cv::UMat Class Reference
Core functionality » Basic structures

`#include "mat.hpp"`

## Public Types
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
| UMat (UMatUsageFlags usageFlags=USAGE_DEFAULT)
| default constructor More...
| UMat (int rows, int cols, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| constructs 2D matrix of the specified size and type More...
| UMat (Size size, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| UMat (int rows, int cols, int type, const Scalar &s, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| constucts 2D matrix and fills it with the specified value _s. More...
| UMat (Size size, int type, const Scalar &s, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| UMat (int ndims, const int *sizes, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| constructs n-dimensional matrix More...
| UMat (int ndims, const int *sizes, int type, const Scalar &s, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| UMat (const UMat &m)
| copy constructor More...
| UMat (const UMat &m, const Range &rowRange, const Range &colRange=Range::all())
| creates a matrix header for a part of the bigger matrix More...
| UMat (const UMat &m, const Rect &roi)
| UMat (const UMat &m, const Range *ranges)
| UMat (const UMat &m, const std::vector< Range > &ranges)
template<typename _Tp >
| UMat (const std::vector< _Tp > &vec, bool copyData=false)
| builds matrix from std::vector with or without copying the data More...
template<typename _Tp , int n>
| UMat (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>
| UMat (const Matx< _Tp, m, n > &mtx, bool copyData=true)
| builds matrix from cv::Matx; the data is copied by default More...
template<typename _Tp >
| UMat (const Point_< _Tp > &pt, bool copyData=true)
| builds matrix from a 2D point More...
template<typename _Tp >
| UMat (const Point3_< _Tp > &pt, bool copyData=true)
| builds matrix from a 3D point More...
template<typename _Tp >
| UMat (const MatCommaInitializer_< _Tp > &commaInitializer)
| builds matrix from comma initializer More...
| ~UMat ()
| destructor - calls release() More...
void | addref ()
| increases the reference counter; use with care to avoid memleaks More...
UMat & | adjustROI (int dtop, int dbottom, int dleft, int dright)
| moves/resizes the current matrix ROI inside the parent matrix. More...
void | assignTo (UMat &m, int type=-1) const
int | channels () const
| returns element type, similar to CV_MAT_CN(cvmat->type) 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...
UMat | clone () const
| returns deep copy of the matrix, i.e. the data is copied More...
UMat | col (int x) const
| returns a new matrix header for the specified column More...
UMat | colRange (int startcol, int endcol) const
| ... for the specified column span More...
UMat | colRange (const Range &r) const
void | convertTo (OutputArray m, int rtype, double alpha=1, double beta=0) const
| converts matrix to another datatype with optional scaling. See cvConvertScale. More...
void | copySize (const UMat &m)
| internal use function; properly re-allocates _size, _step arrays 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 | create (int rows, int cols, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
| allocates new matrix data unless the matrix already has specified size and type. More...
void | create (Size size, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
void | create (int ndims, const int *sizes, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
void | create (const std::vector< int > &sizes, int type, UMatUsageFlags usageFlags=USAGE_DEFAULT)
void | deallocate ()
| deallocates the matrix data More...
int | depth () const
| returns element type, similar to CV_MAT_DEPTH(cvmat->type) More...
UMat | diag (int d=0) const
double | dot (InputArray m) const
| computes dot-product More...
size_t | elemSize () const
| returns element size in bytes, More...
size_t | elemSize1 () const
| returns the size of element channel in bytes. More...
bool | empty () const
| returns true if matrix data is NULL More...
Mat | getMat (int flags) const
void * | handle (int accessFlags) const
UMat | inv (int method=DECOMP_LU) const
| matrix inversion by means of matrix expressions More...
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...
void | locateROI (Size &wholeSize, Point &ofs) const
| locates matrix header within a parent matrix. See below More...
UMat | mul (InputArray m, double scale=1) const
| per-element matrix multiplication by means of matrix expressions More...
void | ndoffset (size_t *ofs) const
UMat | operator() (Range rowRange, Range colRange) const
| extracts a rectangular sub-matrix More...
UMat | operator() (const Rect &roi) const
UMat | operator() (const Range *ranges) const
UMat | operator() (const std::vector< Range > &ranges) const
UMat & | operator= (const UMat &m)
| assignment operators More...
UMat & | operator= (const Scalar &s)
| sets every matrix element to s More...
void | release ()
| decreases reference counter; More...
UMat | reshape (int cn, int rows=0) const
| creates alternative matrix header for the same data, with different More...
UMat | reshape (int cn, int newndims, const int *newsz) const
UMat | row (int y) const
| returns a new matrix header for the specified row More...
UMat | rowRange (int startrow, int endrow) const
| ... for the specified row span More...
UMat | rowRange (const Range &r) const
UMat & | setTo (InputArray value, InputArray mask=noArray())
| sets some of the matrix elements to s, according to the mask More...
size_t | step1 (int i=0) const
| returns step/elemSize1() More...
UMat | t () const
| matrix transposition by means of matrix expressions More...
size_t | total () const
| returns the total number of matrix elements More...
int | type () const
| returns element type, similar to CV_MAT_TYPE(cvmat->type) More...
void | updateContinuityFlag ()
| internal use method: updates the continuity flag More...

## Static Public Member Functions
static UMat | diag (const UMat &d)
| constructs a square diagonal matrix which main diagonal is vector "d" More...
static UMat | eye (int rows, int cols, int type)
static UMat | eye (Size size, int type)
static MatAllocator * | getStdAllocator ()
| and the standard allocator More...
static UMat | ones (int rows, int cols, int type)
static UMat | ones (Size size, int type)
static UMat | ones (int ndims, const int *sz, int type)
static UMat | zeros (int rows, int cols, int type)
| Matlab-style matrix initialization. More...
static UMat | zeros (Size size, int type)
static UMat | zeros (int ndims, const int *sz, int type)

## Public Attributes
MatAllocator * | allocator
| custom allocator More...
int | cols
int | dims
| the matrix dimensionality, >= 2 More...
int | flags
size_t | offset
int | rows
| the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions More...
MatSize | size
MatStep | step
UMatData * | u
UMatUsageFlags | usageFlags

## Detailed Description

Todo:
  document

Examples:
  hog.cpp.

## Member Enumeration Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
MAGIC_VAL |
AUTO_STEP |
CONTINUOUS_FLAG |
SUBMATRIX_FLAG |

## ◆ anonymous enum

anonymous enum

Enumerator
MAGIC_MASK |
TYPE_MASK |
DEPTH_MASK |

## Constructor & Destructor Documentation

## ◆ UMat() [1/18]

cv::UMat::UMat | ( | UMatUsageFlags | usageFlags = `USAGE_DEFAULT` | ) |

default constructor

## ◆ UMat() [2/18]

cv::UMat::UMat | ( | int | rows,
|  | int | cols,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

constructs 2D matrix of the specified size and type

## ◆ UMat() [3/18]

cv::UMat::UMat | ( | Size | size,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

## ◆ UMat() [4/18]

cv::UMat::UMat | ( | int | rows,
|  | int | cols,
|  | int | type,
|  | const Scalar & | s,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

constucts 2D matrix and fills it with the specified value _s.

## ◆ UMat() [5/18]

cv::UMat::UMat | ( | Size | size,
|  | int | type,
|  | const Scalar & | s,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

## ◆ UMat() [6/18]

cv::UMat::UMat | ( | int | ndims,
|  | const int * | sizes,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

constructs n-dimensional matrix

## ◆ UMat() [7/18]

cv::UMat::UMat | ( | int | ndims,
|  | const int * | sizes,
|  | int | type,
|  | const Scalar & | s,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

## ◆ UMat() [8/18]

cv::UMat::UMat | ( | const UMat & | m | ) |

copy constructor

## ◆ UMat() [9/18]

cv::UMat::UMat | ( | const UMat & | m,
|  | const Range & | rowRange,
|  | const Range & | colRange = `Range::all()`
| ) |  |

creates a matrix header for a part of the bigger matrix

## ◆ UMat() [10/18]

cv::UMat::UMat | ( | const UMat & | m,
|  | const Rect & | roi
| ) |  |

## ◆ UMat() [11/18]

cv::UMat::UMat | ( | const UMat & | m,
|  | const Range * | ranges
| ) |  |

## ◆ UMat() [12/18]

cv::UMat::UMat | ( | const UMat & | m,
|  | const std::vector< Range > & | ranges
| ) |  |

## ◆ UMat() [13/18]

template<typename _Tp >

cv::UMat::UMat | ( | const std::vector< _Tp > & | vec,
|  | bool | copyData = `false`
| ) |  |
| explicit

builds matrix from std::vector with or without copying the data

## ◆ UMat() [14/18]

template<typename _Tp , int n>

cv::UMat::UMat | ( | const Vec< _Tp, n > & | vec,
|  | bool | copyData = `true`
| ) |  |
| explicit

builds matrix from cv::Vec; the data is copied by default

## ◆ UMat() [15/18]

template<typename _Tp , int m, int n>

cv::UMat::UMat | ( | const Matx< _Tp, m, n > & | mtx,
|  | bool | copyData = `true`
| ) |  |
| explicit

builds matrix from cv::Matx; the data is copied by default

## ◆ UMat() [16/18]

template<typename _Tp >

cv::UMat::UMat | ( | const Point_< _Tp > & | pt,
|  | bool | copyData = `true`
| ) |  |
| explicit

builds matrix from a 2D point

## ◆ UMat() [17/18]

template<typename _Tp >

cv::UMat::UMat | ( | const Point3_< _Tp > & | pt,
|  | bool | copyData = `true`
| ) |  |
| explicit

builds matrix from a 3D point

## ◆ UMat() [18/18]

template<typename _Tp >

cv::UMat::UMat | ( | const MatCommaInitializer_< _Tp > & | commaInitializer | ) |
| explicit

builds matrix from comma initializer

## ◆ ~UMat()

cv::UMat::~UMat | ( |  | ) |

destructor - calls release()

## Member Function Documentation

## ◆ addref()

void cv::UMat::addref | ( |  | ) |

increases the reference counter; use with care to avoid memleaks

## ◆ adjustROI()

UMat& cv::UMat::adjustROI | ( | int | dtop,
|  | int | dbottom,
|  | int | dleft,
|  | int | dright
| ) |  |

moves/resizes the current matrix ROI inside the parent matrix.

## ◆ assignTo()

void cv::UMat::assignTo | ( | UMat & | m,
|  | int | type = `-1`
| ) |  | const

## ◆ channels()

int cv::UMat::channels | ( |  | ) | const

returns element type, similar to CV_MAT_CN(cvmat->type)

## ◆ checkVector()

int cv::UMat::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

## ◆ clone()

UMat cv::UMat::clone | ( |  | ) | const

returns deep copy of the matrix, i.e. the data is copied

## ◆ col()

UMat cv::UMat::col | ( | int | x | ) | const

returns a new matrix header for the specified column

## ◆ colRange() [1/2]

UMat cv::UMat::colRange | ( | int | startcol,
|  | int | endcol
| ) |  | const

... for the specified column span

## ◆ colRange() [2/2]

UMat cv::UMat::colRange | ( | const Range & | r | ) | const

## ◆ convertTo()

void cv::UMat::convertTo | ( | OutputArray | m,
|  | int | rtype,
|  | double | alpha = `1`,
|  | double | beta = `0`
| ) |  | const

converts matrix to another datatype with optional scaling. See cvConvertScale.

## ◆ copySize()

void cv::UMat::copySize | ( | const UMat & | m | ) |

internal use function; properly re-allocates _size, _step arrays

## ◆ copyTo() [1/2]

void cv::UMat::copyTo | ( | OutputArray | m | ) | const

copies the matrix content to "m".

Examples:
  hog.cpp.

## ◆ copyTo() [2/2]

void cv::UMat::copyTo | ( | OutputArray | m,
|  | InputArray | mask
| ) |  | const

copies those matrix elements to "m" that are marked with non-zero mask elements.

## ◆ create() [1/4]

void cv::UMat::create | ( | int | rows,
|  | int | cols,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

allocates new matrix data unless the matrix already has specified size and type.

## ◆ create() [2/4]

void cv::UMat::create | ( | Size | size,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

## ◆ create() [3/4]

void cv::UMat::create | ( | int | ndims,
|  | const int * | sizes,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

## ◆ create() [4/4]

void cv::UMat::create | ( | const std::vector< int > & | sizes,
|  | int | type,
|  | UMatUsageFlags | usageFlags = `USAGE_DEFAULT`
| ) |  |

## ◆ deallocate()

void cv::UMat::deallocate | ( |  | ) |

deallocates the matrix data

## ◆ depth()

int cv::UMat::depth | ( |  | ) | const

returns element type, similar to CV_MAT_DEPTH(cvmat->type)

## ◆ diag() [1/2]

UMat cv::UMat::diag | ( | int | d = `0` | ) | const

... for the specified diagonal (d=0 - the main diagonal, >0 - a diagonal from the upper half, <0 - a diagonal from the lower half)

## ◆ diag() [2/2]

static UMat cv::UMat::diag | ( | const UMat & | d | ) |
| static

constructs a square diagonal matrix which main diagonal is vector "d"

## ◆ dot()

double cv::UMat::dot | ( | InputArray | m | ) | const

computes dot-product

## ◆ elemSize()

size_t cv::UMat::elemSize | ( |  | ) | const

returns element size in bytes,

## ◆ elemSize1()

size_t cv::UMat::elemSize1 | ( |  | ) | const

returns the size of element channel in bytes.

## ◆ empty()

bool cv::UMat::empty | ( |  | ) | const

returns true if matrix data is NULL

Examples:
  hog.cpp.

## ◆ eye() [1/2]

static UMat cv::UMat::eye | ( | int | rows,
|  | int | cols,
|  | int | type
| ) |  |
| static

## ◆ eye() [2/2]

static UMat cv::UMat::eye | ( | Size | size,
|  | int | type
| ) |  |
| static

## ◆ getMat()

Mat cv::UMat::getMat | ( | int | flags | ) | const

Examples:
  hog.cpp.

## ◆ getStdAllocator()

static MatAllocator* cv::UMat::getStdAllocator | ( |  | ) |
| static

and the standard allocator

## ◆ handle()

void* cv::UMat::handle | ( | int | accessFlags | ) | const

Returns the OpenCL buffer handle on which UMat operates on. The UMat instance should be kept alive during the use of the handle to prevent the buffer to be returned to the OpenCV buffer pool.

## ◆ inv()

UMat cv::UMat::inv | ( | int | method = `DECOMP_LU` | ) | const

matrix inversion by means of matrix expressions

## ◆ isContinuous()

bool cv::UMat::isContinuous | ( |  | ) | const

returns true iff the matrix data is continuous

## ◆ isSubmatrix()

bool cv::UMat::isSubmatrix | ( |  | ) | const

returns true if the matrix is a submatrix of another matrix

## ◆ locateROI()

void cv::UMat::locateROI | ( | Size & | wholeSize,
|  | Point & | ofs
| ) |  | const

locates matrix header within a parent matrix. See below

## ◆ mul()

UMat cv::UMat::mul | ( | InputArray | m,
|  | double | scale = `1`
| ) |  | const

per-element matrix multiplication by means of matrix expressions

## ◆ ndoffset()

void cv::UMat::ndoffset | ( | size_t * | ofs | ) | const

## ◆ ones() [1/3]

static UMat cv::UMat::ones | ( | int | rows,
|  | int | cols,
|  | int | type
| ) |  |
| static

## ◆ ones() [2/3]

static UMat cv::UMat::ones | ( | Size | size,
|  | int | type
| ) |  |
| static

## ◆ ones() [3/3]

static UMat cv::UMat::ones | ( | int | ndims,
|  | const int * | sz,
|  | int | type
| ) |  |
| static

## ◆ operator()() [1/4]

UMat cv::UMat::operator() | ( | Range | rowRange,
|  | Range | colRange
| ) |  | const

extracts a rectangular sub-matrix

## ◆ operator()() [2/4]

UMat cv::UMat::operator() | ( | const Rect & | roi | ) | const

## ◆ operator()() [3/4]

UMat cv::UMat::operator() | ( | const Range * | ranges | ) | const

## ◆ operator()() [4/4]

UMat cv::UMat::operator() | ( | const std::vector< Range > & | ranges | ) | const

## ◆ operator=() [1/2]

UMat& cv::UMat::operator= | ( | const UMat & | m | ) |

assignment operators

## ◆ operator=() [2/2]

UMat& cv::UMat::operator= | ( | const Scalar & | s | ) |

sets every matrix element to s

## ◆ release()

void cv::UMat::release | ( |  | ) |

decreases reference counter;

## ◆ reshape() [1/2]

UMat cv::UMat::reshape | ( | int | cn,
|  | int | rows = `0`
| ) |  | const

creates alternative matrix header for the same data, with different

## ◆ reshape() [2/2]

UMat cv::UMat::reshape | ( | int | cn,
|  | int | newndims,
|  | const int * | newsz
| ) |  | const

## ◆ row()

UMat cv::UMat::row | ( | int | y | ) | const

returns a new matrix header for the specified row

## ◆ rowRange() [1/2]

UMat cv::UMat::rowRange | ( | int | startrow,
|  | int | endrow
| ) |  | const

... for the specified row span

## ◆ rowRange() [2/2]

UMat cv::UMat::rowRange | ( | const Range & | r | ) | const

## ◆ setTo()

UMat& cv::UMat::setTo | ( | InputArray | value,
|  | InputArray | mask = `noArray()`
| ) |  |

sets some of the matrix elements to s, according to the mask

## ◆ step1()

size_t cv::UMat::step1 | ( | int | i = `0` | ) | const

returns step/elemSize1()

## ◆ t()

UMat cv::UMat::t | ( |  | ) | const

matrix transposition by means of matrix expressions

## ◆ total()

size_t cv::UMat::total | ( |  | ) | const

returns the total number of matrix elements

## ◆ type()

int cv::UMat::type | ( |  | ) | const

returns element type, similar to CV_MAT_TYPE(cvmat->type)

## ◆ updateContinuityFlag()

void cv::UMat::updateContinuityFlag | ( |  | ) |

internal use method: updates the continuity flag

## ◆ zeros() [1/3]

static UMat cv::UMat::zeros | ( | int | rows,
|  | int | cols,
|  | int | type
| ) |  |
| static

Matlab-style matrix initialization.

## ◆ zeros() [2/3]

static UMat cv::UMat::zeros | ( | Size | size,
|  | int | type
| ) |  |
| static

## ◆ zeros() [3/3]

static UMat cv::UMat::zeros | ( | int | ndims,
|  | const int * | sz,
|  | int | type
| ) |  |
| static

## Member Data Documentation

## ◆ allocator

MatAllocator* cv::UMat::allocator

custom allocator

## ◆ cols

int cv::UMat::cols

Examples:
  hog.cpp.

## ◆ dims

int cv::UMat::dims

the matrix dimensionality, >= 2

## ◆ flags

int cv::UMat::flags

includes several bit-fields:

- the magic signature
- continuity flag
- depth
- number of channels

## ◆ offset

size_t cv::UMat::offset

## ◆ rows

int cv::UMat::rows

the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions

Examples:
  hog.cpp.

## ◆ size

MatSize cv::UMat::size

## ◆ step

MatStep cv::UMat::step

## ◆ u

UMatData* cv::UMat::u

## ◆ usageFlags

UMatUsageFlags cv::UMat::usageFlags

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

- core/include/opencv2/core/mat.hpp