OpenCV 5.0.0-pre
Open Source Computer Vision
Loading...
Searching...
No Matches
cv::MatShape Struct Reference

Represents shape of a matrix/tensor. Previously, MatShape was defined as an alias of std::vector<int>, but now we use a special structure that provides a few extra benefits: More...

#include <opencv2/core/mat.hpp>

Collaboration diagram for cv::MatShape:

Public Types

enum  { MAX_DIMS =10 }
 

Public Member Functions

 MatShape ()
 
template<class _It >
 MatShape (_It begin, _It end)
 
 MatShape (const int *begin, const int *end, DataLayout layout=DATA_LAYOUT_UNKNOWN, int C=0)
 
 MatShape (const MatShape &shape)
 
 MatShape (const std::vector< int > &shape, DataLayout layout=DATA_LAYOUT_UNKNOWN, int C=0)
 
 MatShape (int dims, int value, DataLayout layout=DATA_LAYOUT_UNKNOWN)
 
 MatShape (size_t dims, const int *sizes=nullptr, DataLayout layout=DATA_LAYOUT_UNKNOWN, int C=0)
 
 MatShape (size_t dims, int value, DataLayout layout=DATA_LAYOUT_UNKNOWN)
 
 MatShape (std::initializer_list< int > shape)
 
template<class _It >
void assign (_It begin, _It end)
 
void assign (const int *begin, const int *end)
 
void assign (int newSize, int value)
 
void assign (size_t newSize, int value)
 
void assign_ (const int *begin, const int *end)
 
int & back ()
 
const int & back () const
 
int * begin ()
 
const int * begin () const
 
void clear ()
 
int * data ()
 
const int * data () const
 
void emplace_back (int value)
 
bool empty () const
 
int * end ()
 
const int * end () const
 
void erase (int *where)
 
MatShape expand (const MatShape &another) const
 
MatShape fromBlock (DataLayout newLayout) const
 
bool hasSymbols () const
 
template<class _It >
void insert (int *where, _It begin, _It end)
 
void insert (int *where, const int *begin, const int *end)
 
void insert (int *where, int count, int value)
 
void insert (int *where, int value)
 
void insert (int *where, size_t count, int value)
 
void insert_ (int *where, const int *begin, const int *end)
 
bool isScalar () const
 
MatShapeoperator= (const MatShape &shape)
 
int & operator[] (size_t idx)
 
const int & operator[] (size_t idx) const
 
void push_back (int value)
 
void reserve (size_t maxSize)
 
void resize (size_t newSize, int value=0)
 
size_t size () const
 
std::string str () const
 
MatShape toBlock (int C0) const
 
size_t total () const
 

Static Public Member Functions

static MatShape scalar ()
 

Public Attributes

int C
 
int dims
 
DataLayout layout
 
int p [MAX_DIMS]
 

Detailed Description

Represents shape of a matrix/tensor. Previously, MatShape was defined as an alias of std::vector<int>, but now we use a special structure that provides a few extra benefits:

  1. avoids any heap operations, since the shape is stored in a plain array. This reduces overhead of shape inference etc.
  2. includes information about the layout, including the actual number of channels ('C') in the case of block layout.
  3. distinguishes between empty shape (total() == 0) and 0-dimensional shape (dims == 0, but total() == 1).

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_DIMS 

Constructor & Destructor Documentation

◆ MatShape() [1/9]

cv::MatShape::MatShape ( )

◆ MatShape() [2/9]

cv::MatShape::MatShape ( size_t dims,
const int * sizes = nullptr,
DataLayout layout = DATA_LAYOUT_UNKNOWN,
int C = 0 )
explicit

◆ MatShape() [3/9]

cv::MatShape::MatShape ( size_t dims,
int value,
DataLayout layout = DATA_LAYOUT_UNKNOWN )
explicit

◆ MatShape() [4/9]

cv::MatShape::MatShape ( int dims,
int value,
DataLayout layout = DATA_LAYOUT_UNKNOWN )
explicit

◆ MatShape() [5/9]

cv::MatShape::MatShape ( const std::vector< int > & shape,
DataLayout layout = DATA_LAYOUT_UNKNOWN,
int C = 0 )
explicit

◆ MatShape() [6/9]

cv::MatShape::MatShape ( const int * begin,
const int * end,
DataLayout layout = DATA_LAYOUT_UNKNOWN,
int C = 0 )
explicit

◆ MatShape() [7/9]

cv::MatShape::MatShape ( std::initializer_list< int > shape)
explicit

◆ MatShape() [8/9]

cv::MatShape::MatShape ( const MatShape & shape)

◆ MatShape() [9/9]

template<class _It >
cv::MatShape::MatShape ( _It begin,
_It end )

Member Function Documentation

◆ assign() [1/4]

template<class _It >
void cv::MatShape::assign ( _It begin,
_It end )

◆ assign() [2/4]

void cv::MatShape::assign ( const int * begin,
const int * end )

◆ assign() [3/4]

void cv::MatShape::assign ( int newSize,
int value )

◆ assign() [4/4]

void cv::MatShape::assign ( size_t newSize,
int value )

◆ assign_()

void cv::MatShape::assign_ ( const int * begin,
const int * end )

◆ back() [1/2]

int & cv::MatShape::back ( )

◆ back() [2/2]

const int & cv::MatShape::back ( ) const

◆ begin() [1/2]

int * cv::MatShape::begin ( )

◆ begin() [2/2]

const int * cv::MatShape::begin ( ) const

◆ clear()

void cv::MatShape::clear ( )

◆ data() [1/2]

int * cv::MatShape::data ( )

◆ data() [2/2]

const int * cv::MatShape::data ( ) const

◆ emplace_back()

void cv::MatShape::emplace_back ( int value)

◆ empty()

bool cv::MatShape::empty ( ) const

◆ end() [1/2]

int * cv::MatShape::end ( )

◆ end() [2/2]

const int * cv::MatShape::end ( ) const

◆ erase()

void cv::MatShape::erase ( int * where)

◆ expand()

MatShape cv::MatShape::expand ( const MatShape & another) const

◆ fromBlock()

MatShape cv::MatShape::fromBlock ( DataLayout newLayout) const

◆ hasSymbols()

bool cv::MatShape::hasSymbols ( ) const

◆ insert() [1/5]

template<class _It >
void cv::MatShape::insert ( int * where,
_It begin,
_It end )

◆ insert() [2/5]

void cv::MatShape::insert ( int * where,
const int * begin,
const int * end )

◆ insert() [3/5]

void cv::MatShape::insert ( int * where,
int count,
int value )

◆ insert() [4/5]

void cv::MatShape::insert ( int * where,
int value )

◆ insert() [5/5]

void cv::MatShape::insert ( int * where,
size_t count,
int value )

◆ insert_()

void cv::MatShape::insert_ ( int * where,
const int * begin,
const int * end )

◆ isScalar()

bool cv::MatShape::isScalar ( ) const

◆ operator=()

MatShape & cv::MatShape::operator= ( const MatShape & shape)

◆ operator[]() [1/2]

int & cv::MatShape::operator[] ( size_t idx)

◆ operator[]() [2/2]

const int & cv::MatShape::operator[] ( size_t idx) const

◆ push_back()

void cv::MatShape::push_back ( int value)

◆ reserve()

void cv::MatShape::reserve ( size_t maxSize)

◆ resize()

void cv::MatShape::resize ( size_t newSize,
int value = 0 )

◆ scalar()

static MatShape cv::MatShape::scalar ( )
static

◆ size()

size_t cv::MatShape::size ( ) const

◆ str()

std::string cv::MatShape::str ( ) const

◆ toBlock()

MatShape cv::MatShape::toBlock ( int C0) const

◆ total()

size_t cv::MatShape::total ( ) const

Member Data Documentation

◆ C

int cv::MatShape::C

◆ dims

int cv::MatShape::dims

◆ layout

DataLayout cv::MatShape::layout

◆ p

int cv::MatShape::p[MAX_DIMS]

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