OpenCV  4.7.0-dev
Open Source Computer Vision
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
cv::UMat Class Reference

#include <opencv2/core/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) CV_NOEXCEPT
 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)
 constructs 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...
 
 UMat (UMat &&m)
 
 ~UMat ()
 destructor - calls release() More...
 
void addref ()
 increases the reference counter; use with care to avoid memleaks More...
 
UMatadjustROI (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...
 
CV_NODISCARD_STD 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 (AccessFlag flags) const
 
void * handle (AccessFlag 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
 
UMatoperator= (const UMat &m)
 assignment operators More...
 
UMatoperator= (const Scalar &s)
 sets every matrix element to s More...
 
UMatoperator= (UMat &&m)
 
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
 
UMatsetTo (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 CV_NODISCARD_STD UMat diag (const UMat &d, UMatUsageFlags usageFlags)
 constructs a square diagonal matrix which main diagonal is vector "d" More...
 
static CV_NODISCARD_STD UMat diag (const UMat &d)
 
static CV_NODISCARD_STD UMat eye (int rows, int cols, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat eye (Size size, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat eye (int rows, int cols, int type)
 
static CV_NODISCARD_STD UMat eye (Size size, int type)
 
static MatAllocatorgetStdAllocator ()
 and the standard allocator More...
 
static CV_NODISCARD_STD UMat ones (int rows, int cols, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat ones (Size size, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat ones (int ndims, const int *sz, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat ones (int rows, int cols, int type)
 
static CV_NODISCARD_STD UMat ones (Size size, int type)
 
static CV_NODISCARD_STD UMat ones (int ndims, const int *sz, int type)
 
static CV_NODISCARD_STD UMat zeros (int rows, int cols, int type, UMatUsageFlags usageFlags)
 Matlab-style matrix initialization. More...
 
static CV_NODISCARD_STD UMat zeros (Size size, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat zeros (int ndims, const int *sz, int type, UMatUsageFlags usageFlags)
 
static CV_NODISCARD_STD UMat zeros (int rows, int cols, int type)
 
static CV_NODISCARD_STD UMat zeros (Size size, int type)
 
static CV_NODISCARD_STD UMat zeros (int ndims, const int *sz, int type)
 

Public Attributes

MatAllocatorallocator
 custom allocator More...
 
int cols
 number of columns in the matrix; -1 when the matrix has more than 2 dimensions More...
 
int dims
 the matrix dimensionality, >= 2 More...
 
int flags
 
size_t offset
 offset of the submatrix (or 0) More...
 
int rows
 number of rows in the matrix; -1 when the matrix has more than 2 dimensions More...
 
MatSize size
 dimensional size of the matrix; accessible in various formats More...
 
MatStep step
 number of bytes each matrix element/row/plane/dimension occupies More...
 
UMatDatau
 black-box container of UMat data More...
 
UMatUsageFlags usageFlags
 usage flags for allocator; recommend do not set directly, instead set during construct/create/getUMat More...
 

Detailed Description

Todo:
document
Examples:
samples/tapi/hog.cpp, and samples/tapi/squares.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/14]

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

default constructor

◆ UMat() [2/14]

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

constructs 2D matrix of the specified size and type

◆ UMat() [3/14]

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

◆ UMat() [4/14]

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

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

◆ UMat() [5/14]

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

◆ UMat() [6/14]

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

constructs n-dimensional matrix

◆ UMat() [7/14]

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

◆ UMat() [8/14]

cv::UMat::UMat ( const UMat m)

copy constructor

◆ UMat() [9/14]

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/14]

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

◆ UMat() [11/14]

cv::UMat::UMat ( const UMat m,
const Range ranges 
)

◆ UMat() [12/14]

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

◆ UMat() [13/14]

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()

cv::UMat::~UMat ( )

destructor - calls release()

◆ UMat() [14/14]

cv::UMat::UMat ( UMat &&  m)

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()

CV_NODISCARD_STD 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:
samples/tapi/hog.cpp, and samples/tapi/squares.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/3]

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/3]

static CV_NODISCARD_STD UMat cv::UMat::diag ( const UMat d,
UMatUsageFlags  usageFlags 
)
static

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

◆ diag() [3/3]

static CV_NODISCARD_STD UMat cv::UMat::diag ( const UMat d)
inlinestatic

◆ 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:
samples/tapi/hog.cpp, and samples/tapi/squares.cpp.

◆ eye() [1/4]

static CV_NODISCARD_STD UMat cv::UMat::eye ( int  rows,
int  cols,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ eye() [2/4]

static CV_NODISCARD_STD UMat cv::UMat::eye ( Size  size,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ eye() [3/4]

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

◆ eye() [4/4]

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

◆ getMat()

Mat cv::UMat::getMat ( AccessFlag  flags) const

◆ getStdAllocator()

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

and the standard allocator

◆ handle()

void* cv::UMat::handle ( AccessFlag  accessFlags) const
Python:
cv.UMat.handle(accessFlags) -> retval

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
Python:
cv.UMat.isContinuous() -> retval

returns true iff the matrix data is continuous

◆ isSubmatrix()

bool cv::UMat::isSubmatrix ( ) const
Python:
cv.UMat.isSubmatrix() -> retval

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/6]

static CV_NODISCARD_STD UMat cv::UMat::ones ( int  rows,
int  cols,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ ones() [2/6]

static CV_NODISCARD_STD UMat cv::UMat::ones ( Size  size,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ ones() [3/6]

static CV_NODISCARD_STD UMat cv::UMat::ones ( int  ndims,
const int *  sz,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ ones() [4/6]

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

◆ ones() [5/6]

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

◆ ones() [6/6]

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

◆ 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/3]

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

assignment operators

◆ operator=() [2/3]

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

sets every matrix element to s

◆ operator=() [3/3]

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

◆ 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)

Examples:
samples/tapi/squares.cpp.

◆ updateContinuityFlag()

void cv::UMat::updateContinuityFlag ( )

internal use method: updates the continuity flag

◆ zeros() [1/6]

static CV_NODISCARD_STD UMat cv::UMat::zeros ( int  rows,
int  cols,
int  type,
UMatUsageFlags  usageFlags 
)
static

Matlab-style matrix initialization.

◆ zeros() [2/6]

static CV_NODISCARD_STD UMat cv::UMat::zeros ( Size  size,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ zeros() [3/6]

static CV_NODISCARD_STD UMat cv::UMat::zeros ( int  ndims,
const int *  sz,
int  type,
UMatUsageFlags  usageFlags 
)
static

◆ zeros() [4/6]

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

◆ zeros() [5/6]

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

◆ zeros() [6/6]

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

Member Data Documentation

◆ allocator

MatAllocator* cv::UMat::allocator

custom allocator

◆ cols

int cv::UMat::cols

number of columns in the matrix; -1 when the matrix has more than 2 dimensions

Examples:
samples/tapi/hog.cpp, and samples/tapi/squares.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

offset of the submatrix (or 0)

◆ rows

int cv::UMat::rows

number of rows in the matrix; -1 when the matrix has more than 2 dimensions

Examples:
samples/tapi/hog.cpp, and samples/tapi/squares.cpp.

◆ size

MatSize cv::UMat::size

dimensional size of the matrix; accessible in various formats

Examples:
samples/tapi/hog.cpp, and samples/tapi/squares.cpp.

◆ step

MatStep cv::UMat::step

number of bytes each matrix element/row/plane/dimension occupies

◆ u

UMatData* cv::UMat::u

black-box container of UMat data

◆ usageFlags

UMatUsageFlags cv::UMat::usageFlags

usage flags for allocator; recommend do not set directly, instead set during construct/create/getUMat


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