cv::_OutputArray Class Reference 核心功能 » 基本结构


This type is very similar to InputArray except that it is used for input/output and output function parameters. 更多...

#include <opencv2/core/mat.hpp>

Inheritance diagram for cv::_OutputArray:
cv::_InputArray cv::_InputOutputArray

公共类型

enum   DepthMask {
   DEPTH_MASK_8U = 1 << CV_8U,
   DEPTH_MASK_8S = 1 << CV_8S,
   DEPTH_MASK_16U = 1 << CV_16U,
   DEPTH_MASK_16S = 1 << CV_16S,
   DEPTH_MASK_32S = 1 << CV_32S,
   DEPTH_MASK_32F = 1 << CV_32F,
   DEPTH_MASK_64F = 1 << CV_64F,
   DEPTH_MASK_16F = 1 << CV_16F,
   DEPTH_MASK_ALL = (DEPTH_MASK_64F<<1)-1,
   DEPTH_MASK_ALL_BUT_8S = DEPTH_MASK_ALL & ~DEPTH_MASK_8S,
   DEPTH_MASK_ALL_16F = (DEPTH_MASK_16F<<1)-1,
   DEPTH_MASK_FLT = DEPTH_MASK_32F + DEPTH_MASK_64F
}
 
-  Public Types inherited from cv::_InputArray
enum   KindFlag {
   KIND_SHIFT = 16,
   FIXED_TYPE = 0x8000 << KIND_SHIFT,
   FIXED_SIZE = 0x4000 << KIND_SHIFT,
   KIND_MASK = 31 << KIND_SHIFT,
   NONE = 0 << KIND_SHIFT,
   MAT = 1 << KIND_SHIFT,
   MATX = 2 << KIND_SHIFT,
   STD_VECTOR = 3 << KIND_SHIFT,
   STD_VECTOR_VECTOR = 4 << KIND_SHIFT,
   STD_VECTOR_MAT = 5 << KIND_SHIFT,
   EXPR = 6 << KIND_SHIFT,
   OPENGL_BUFFER = 7 << KIND_SHIFT,
   CUDA_HOST_MEM = 8 << KIND_SHIFT,
   CUDA_GPU_MAT = 9 << KIND_SHIFT,
   UMAT =10 << KIND_SHIFT,
   STD_VECTOR_UMAT =11 << KIND_SHIFT,
   STD_BOOL_VECTOR =12 << KIND_SHIFT,
   STD_VECTOR_CUDA_GPU_MAT = 13 << KIND_SHIFT,
   STD_ARRAY =14 << KIND_SHIFT,
   STD_ARRAY_MAT =15 << KIND_SHIFT
}
 

Public Member Functions

  _OutputArray ()
 
  _OutputArray (int _flags, void *_obj)
 
  _OutputArray ( Mat &m)
 
  _OutputArray (std::vector< Mat > &vec)
 
  _OutputArray ( cuda::GpuMat &d_mat)
 
  _OutputArray (std::vector< cuda::GpuMat > &d_mat)
 
  _OutputArray ( ogl::Buffer &buf)
 
  _OutputArray ( cuda::HostMem &cuda_mem)
 
template<typename _Tp >
  _OutputArray ( cudev::GpuMat_ < _Tp > &m)
 
template<typename _Tp >
  _OutputArray (std::vector< _Tp > &vec)
 
  _OutputArray (std::vector< bool > &vec)=delete
 
template<typename _Tp >
  _OutputArray (std::vector< std::vector< _Tp > > &vec)
 
  _OutputArray (std::vector< std::vector< bool > > &)=delete
 
template<typename _Tp >
  _OutputArray (std::vector< Mat_ < _Tp > > &vec)
 
template<typename _Tp >
  _OutputArray ( Mat_ < _Tp > &m)
 
template<typename _Tp >
  _OutputArray (_Tp *vec, int n)
 
template<typename _Tp , int m, int n>
  _OutputArray ( Matx < _Tp, m, n > &matx)
 
  _OutputArray ( UMat &m)
 
  _OutputArray (std::vector< UMat > &vec)
 
  _OutputArray (const Mat &m)
 
  _OutputArray (const std::vector< Mat > &vec)
 
  _OutputArray (const cuda::GpuMat &d_mat)
 
  _OutputArray (const std::vector< cuda::GpuMat > &d_mat)
 
  _OutputArray (const ogl::Buffer &buf)
 
  _OutputArray (const cuda::HostMem &cuda_mem)
 
template<typename _Tp >
  _OutputArray (const cudev::GpuMat_ < _Tp > &m)
 
template<typename _Tp >
  _OutputArray (const std::vector< _Tp > &vec)
 
template<typename _Tp >
  _OutputArray (const std::vector< std::vector< _Tp > > &vec)
 
template<typename _Tp >
  _OutputArray (const std::vector< Mat_ < _Tp > > &vec)
 
template<typename _Tp >
  _OutputArray (const Mat_ < _Tp > &m)
 
template<typename _Tp >
  _OutputArray (const _Tp *vec, int n)
 
template<typename _Tp , int m, int n>
  _OutputArray (const Matx < _Tp, m, n > &matx)
 
  _OutputArray (const UMat &m)
 
  _OutputArray (const std::vector< UMat > &vec)
 
template<typename _Tp , std::size_t _Nm>
  _OutputArray (std::array< _Tp, _Nm > &arr)
 
template<typename _Tp , std::size_t _Nm>
  _OutputArray (const std::array< _Tp, _Nm > &arr)
 
template<std::size_t _Nm>
  _OutputArray (std::array< Mat , _Nm > &arr)
 
template<std::size_t _Nm>
  _OutputArray (const std::array< Mat , _Nm > &arr)
 
void  assign (const UMat &u) const
 
void  assign (const Mat &m) const
 
void  assign (const std::vector< UMat > &v) const
 
void  assign (const std::vector< Mat > &v) const
 
void  clear () const
 
void  create ( Size sz , int type , int i=-1, bool allowTransposed=false, _OutputArray::DepthMask fixedDepthMask=static_cast< _OutputArray::DepthMask >(0)) const
 
void  create (int rows , int cols , int type , int i=-1, bool allowTransposed=false, _OutputArray::DepthMask fixedDepthMask=static_cast< _OutputArray::DepthMask >(0)) const
 
void  create (int dims , const int * size , int type , int i=-1, bool allowTransposed=false, _OutputArray::DepthMask fixedDepthMask=static_cast< _OutputArray::DepthMask >(0)) const
 
void  createSameSize (const _InputArray &arr, int mtype) const
 
bool  fixedSize () const
 
bool  fixedType () const
 
cuda::GpuMat getGpuMatRef () const
 
std::vector< cuda::GpuMat > &  getGpuMatVecRef () const
 
cuda::HostMem getHostMemRef () const
 
Mat getMatRef (int i=-1) const
 
ogl::Buffer getOGlBufferRef () const
 
UMat getUMatRef (int i=-1) const
 
void  move ( UMat &u) const
 
void  move ( Mat &m) const
 
bool  needed () const
 
void  release () const
 
void  setTo (const _InputArray &value, const _InputArray &mask= _InputArray ()) const
 
-  Public Member Functions inherited from cv::_InputArray
  _InputArray ()
 
  _InputArray (int _flags, void *_obj)
 
  _InputArray (const Mat &m)
 
  _InputArray (const MatExpr &expr)
 
  _InputArray (const std::vector< Mat > &vec)
 
template<typename _Tp >
  _InputArray (const Mat_ < _Tp > &m)
 
template<typename _Tp >
  _InputArray (const std::vector< _Tp > &vec)
 
  _InputArray (const std::vector< bool > &vec)
 
template<typename _Tp >
  _InputArray (const std::vector< std::vector< _Tp > > &vec)
 
  _InputArray (const std::vector< std::vector< bool > > &)=delete
 
template<typename _Tp >
  _InputArray (const std::vector< Mat_ < _Tp > > &vec)
 
template<typename _Tp >
  _InputArray (const _Tp *vec, int n)
 
template<typename _Tp , int m, int n>
  _InputArray (const Matx < _Tp, m, n > &matx)
 
  _InputArray (const double &val)
 
  _InputArray (const cuda::GpuMat &d_mat)
 
  _InputArray (const std::vector< cuda::GpuMat > &d_mat_array)
 
  _InputArray (const ogl::Buffer &buf)
 
  _InputArray (const cuda::HostMem &cuda_mem)
 
template<typename _Tp >
  _InputArray (const cudev::GpuMat_ < _Tp > &m)
 
  _InputArray (const UMat &um)
 
  _InputArray (const std::vector< UMat > &umv)
 
template<typename _Tp , std::size_t _Nm>
  _InputArray (const std::array< _Tp, _Nm > &arr)
 
template<std::size_t _Nm>
  _InputArray (const std::array< Mat , _Nm > &arr)
 
  ~_InputArray ()
 
int  channels (int i=-1) const
 
int  cols (int i=-1) const
 
void  copyTo (const _OutputArray &arr) const
 
void  copyTo (const _OutputArray &arr, const _InputArray &mask) const
 
int  depth (int i=-1) const
 
int  dims (int i=-1) const
 
bool  empty () const
 
int  getFlags () const
 
cuda::GpuMat   getGpuMat () const
 
void  getGpuMatVector (std::vector< cuda::GpuMat > &gpumv) const
 
Mat   getMat (int idx=-1) const
 
Mat   getMat_ (int idx=-1) const
 
void  getMatVector (std::vector< Mat > &mv) const
 
void *  getObj () const
 
ogl::Buffer   getOGlBuffer () const
 
Size   getSz () const
 
UMat   getUMat (int idx=-1) const
 
void  getUMatVector (std::vector< UMat > &umv) const
 
bool  isContinuous (int i=-1) const
 
bool  isGpuMat () const
 
bool  isGpuMatVector () const
 
bool  isMat () const
 
bool  isMatVector () const
 
bool  isMatx () const
 
bool  isSubmatrix (int i=-1) const
 
bool  isUMat () const
 
bool  isUMatVector () const
 
bool  isVector () const
 
_InputArray::KindFlag   kind () const
 
size_t  offset (int i=-1) const
 
int  rows (int i=-1) const
 
bool  sameSize (const _InputArray &arr) const
 
Size   size (int i=-1) const
 
int  sizend (int * sz , int i=-1) const
 
size_t  step (int i=-1) const
 
size_t  total (int i=-1) const
 
int  type (int i=-1) const
 

Static Public Member Functions

template<typename _Tp >
static _OutputArray   rawOut (std::vector< _Tp > &vec)
 
template<typename _Tp , std::size_t _Nm>
static _OutputArray   rawOut (std::array< _Tp, _Nm > &arr)
 
-  Static Public Member Functions inherited from cv::_InputArray
template<typename _Tp >
static _InputArray   rawIn (const std::vector< _Tp > &vec)
 
template<typename _Tp , std::size_t _Nm>
static _InputArray   rawIn (const std::array< _Tp, _Nm > &arr)
 

额外继承成员

-  Protected Member Functions inherited from cv::_InputArray
void  init (int _flags, const void *_obj)
 
void  init (int _flags, const void *_obj, Size _sz)
 
-  Protected Attributes inherited from cv::_InputArray
int  flags
 
void *  obj
 
Size   sz
 

详细描述

This type is very similar to InputArray except that it is used for input/output and output function parameters.

Just like with InputArray, OpenCV users should not care about OutputArray, they just pass Mat , vector<T> etc. to the functions. The same limitation as for InputArray : Do not explicitly create OutputArray instances applies here too.

If you want to make your function polymorphic (i.e. accept different arrays as output parameters), it is also not very difficult. Take the sample above as the reference. Note that _OutputArray::create() needs to be called before _OutputArray::getMat() . This way you guarantee that the output array is properly allocated.

Optional output parameters. If you do not need certain output array to be computed and returned to you, pass cv::noArray() , just like you would in the case of optional input array. At the implementation level, use _OutputArray::needed() to check if certain output array needs to be computed or not.

There are several synonyms for OutputArray that are used to assist automatic Python/Java/... wrapper generators:

Member Enumeration Documentation

◆  DepthMask

枚举器
DEPTH_MASK_8U 
DEPTH_MASK_8S 
DEPTH_MASK_16U 
DEPTH_MASK_16S 
DEPTH_MASK_32S 
DEPTH_MASK_32F 
DEPTH_MASK_64F 
DEPTH_MASK_16F 
DEPTH_MASK_ALL 
DEPTH_MASK_ALL_BUT_8S 
DEPTH_MASK_ALL_16F 
DEPTH_MASK_FLT 

Constructor & Destructor Documentation

◆  _OutputArray() [1/38]

cv::_OutputArray::_OutputArray ( )

◆  _OutputArray() [2/38]

cv::_OutputArray::_OutputArray ( int  _flags ,
void *  _obj  
)

◆  _OutputArray() [3/38]

cv::_OutputArray::_OutputArray ( Mat m )

◆  _OutputArray() [4/38]

cv::_OutputArray::_OutputArray ( std::vector< Mat > &  vec )

◆  _OutputArray() [5/38]

cv::_OutputArray::_OutputArray ( cuda::GpuMat d_mat )

◆  _OutputArray() [6/38]

cv::_OutputArray::_OutputArray ( std::vector< cuda::GpuMat > &  d_mat )

◆  _OutputArray() [7/38]

cv::_OutputArray::_OutputArray ( ogl::Buffer buf )

◆  _OutputArray() [8/38]

cv::_OutputArray::_OutputArray ( cuda::HostMem cuda_mem )

◆  _OutputArray() [9/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( cudev::GpuMat_ < _Tp > &  m )

◆  _OutputArray() [10/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( std::vector< _Tp > &  vec )

◆  _OutputArray() [11/38]

cv::_OutputArray::_OutputArray ( std::vector< bool > &  vec )
delete

◆  _OutputArray() [12/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( std::vector< std::vector< _Tp > > &  vec )

◆  _OutputArray() [13/38]

cv::_OutputArray::_OutputArray ( std::vector< std::vector< bool > > &  )
delete

◆  _OutputArray() [14/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( std::vector< Mat_ < _Tp > > &  vec )

◆  _OutputArray() [15/38]

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

◆  _OutputArray() [16/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( _Tp *  vec ,
int  n  
)

◆  _OutputArray() [17/38]

template<typename _Tp , int m, int n>
cv::_OutputArray::_OutputArray ( Matx < _Tp, m, n > &  matx )

◆  _OutputArray() [18/38]

cv::_OutputArray::_OutputArray ( UMat m )

◆  _OutputArray() [19/38]

cv::_OutputArray::_OutputArray ( std::vector< UMat > &  vec )

◆  _OutputArray() [20/38]

cv::_OutputArray::_OutputArray ( const Mat m )

◆  _OutputArray() [21/38]

cv::_OutputArray::_OutputArray ( const std::vector< Mat > &  vec )

◆  _OutputArray() [22/38]

cv::_OutputArray::_OutputArray ( const cuda::GpuMat d_mat )

◆  _OutputArray() [23/38]

cv::_OutputArray::_OutputArray ( const std::vector< cuda::GpuMat > &  d_mat )

◆  _OutputArray() [24/38]

cv::_OutputArray::_OutputArray ( const ogl::Buffer buf )

◆  _OutputArray() [25/38]

cv::_OutputArray::_OutputArray ( const cuda::HostMem cuda_mem )

◆  _OutputArray() [26/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( const cudev::GpuMat_ < _Tp > &  m )

◆  _OutputArray() [27/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( const std::vector< _Tp > &  vec )

◆  _OutputArray() [28/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( const std::vector< std::vector< _Tp > > &  vec )

◆  _OutputArray() [29/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( const std::vector< Mat_ < _Tp > > &  vec )

◆  _OutputArray() [30/38]

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

◆  _OutputArray() [31/38]

template<typename _Tp >
cv::_OutputArray::_OutputArray ( const _Tp *  vec ,
int  n  
)

◆  _OutputArray() [32/38]

template<typename _Tp , int m, int n>
cv::_OutputArray::_OutputArray ( const Matx < _Tp, m, n > &  matx )

◆  _OutputArray() [33/38]

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

◆  _OutputArray() [34/38]

cv::_OutputArray::_OutputArray ( const std::vector< UMat > &  vec )

◆  _OutputArray() [35/38]

template<typename _Tp , std::size_t _Nm>
cv::_OutputArray::_OutputArray ( std::array< _Tp, _Nm > &  arr )

◆  _OutputArray() [36/38]

template<typename _Tp , std::size_t _Nm>
cv::_OutputArray::_OutputArray ( const std::array< _Tp, _Nm > &  arr )

◆  _OutputArray() [37/38]

template<std::size_t _Nm>
cv::_OutputArray::_OutputArray ( std::array< Mat , _Nm > &  arr )

◆  _OutputArray() [38/38]

template<std::size_t _Nm>
cv::_OutputArray::_OutputArray ( const std::array< Mat , _Nm > &  arr )

成员函数文档编制

◆  assign() [1/4]

void cv::_OutputArray::assign ( const UMat u ) const

◆  assign() [2/4]

void cv::_OutputArray::assign ( const Mat m ) const

◆  assign() [3/4]

void cv::_OutputArray::assign ( const std::vector< UMat > &  v ) const

◆  assign() [4/4]

void cv::_OutputArray::assign ( const std::vector< Mat > &  v ) const

◆  clear()

void cv::_OutputArray::clear ( ) const

◆  create() [1/3]

void cv::_OutputArray::create ( Size   sz ,
int  type ,
int  i = -1 ,
bool  allowTransposed = false ,
_OutputArray::DepthMask   fixedDepthMask = static_cast<  _OutputArray::DepthMask  >(0)  
) const

◆  create() [2/3]

void cv::_OutputArray::create ( int  rows ,
int  cols ,
int  type ,
int  i = -1 ,
bool  allowTransposed = false ,
_OutputArray::DepthMask   fixedDepthMask = static_cast<  _OutputArray::DepthMask  >(0)  
) const

◆  create() [3/3]

void cv::_OutputArray::create ( int  dims ,
const int *  size ,
int  type ,
int  i = -1 ,
bool  allowTransposed = false ,
_OutputArray::DepthMask   fixedDepthMask = static_cast<  _OutputArray::DepthMask  >(0)  
) const

◆  createSameSize()

void cv::_OutputArray::createSameSize ( const _InputArray arr ,
int  mtype  
) const

◆  fixedSize()

bool cv::_OutputArray::fixedSize ( ) const

◆  fixedType()

bool cv::_OutputArray::fixedType ( ) const

◆  getGpuMatRef()

cuda::GpuMat & cv::_OutputArray::getGpuMatRef ( ) const

◆  getGpuMatVecRef()

std::vector< cuda::GpuMat >& cv::_OutputArray::getGpuMatVecRef ( ) const

◆  getHostMemRef()

cuda::HostMem & cv::_OutputArray::getHostMemRef ( ) const

◆  getMatRef()

Mat & cv::_OutputArray::getMatRef ( int  i = -1 ) const

◆  getOGlBufferRef()

ogl::Buffer & cv::_OutputArray::getOGlBufferRef ( ) const

◆  getUMatRef()

UMat & cv::_OutputArray::getUMatRef ( int  i = -1 ) const

◆  move() [1/2]

void cv::_OutputArray::move ( UMat u ) const

◆  move() [2/2]

void cv::_OutputArray::move ( Mat m ) const

◆  needed()

bool cv::_OutputArray::needed ( ) const

◆  rawOut() [1/2]

template<typename _Tp >
static _OutputArray cv::_OutputArray::rawOut ( std::vector< _Tp > &  vec )
static

◆  rawOut() [2/2]

template<typename _Tp , std::size_t _Nm>
static _OutputArray cv::_OutputArray::rawOut ( std::array< _Tp, _Nm > &  arr )
static

◆  release()

void cv::_OutputArray::release ( ) const

◆  setTo()

void cv::_OutputArray::setTo ( const _InputArray value ,
const _InputArray mask = _InputArray ()  
) const

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