OpenCV  3.4.20-dev
Open Source Computer Vision
Public Types | Public Member Functions | List of all members
cv::SparseMat_< _Tp > Class Template Reference

Template sparse n-dimensional array class derived from SparseMat. More...

#include <opencv2/core/mat.hpp>

Inheritance diagram for cv::SparseMat_< _Tp >:
cv::SparseMat

Public Types

typedef SparseMatConstIterator_< _Tp > const_iterator
 
typedef SparseMatIterator_< _Tp > iterator
 
- Public Types inherited from cv::SparseMat
enum  {
  MAGIC_VAL =0x42FD0000,
  MAX_DIM =32,
  HASH_SCALE =0x5bd1e995,
  HASH_BIT =0x80000000
}
 
typedef SparseMatConstIterator const_iterator
 
typedef SparseMatIterator iterator
 

Public Member Functions

 SparseMat_ ()
 the default constructor More...
 
 SparseMat_ (int dims, const int *_sizes)
 the full constructor equivalent to SparseMat(dims, _sizes, DataType<_Tp>::type) More...
 
 SparseMat_ (const SparseMat &m)
 the copy constructor. If DataType<_Tp>.type != m.type(), the m elements are converted More...
 
 SparseMat_ (const SparseMat_ &m)
 the copy constructor. This is O(1) operation - no data is copied More...
 
 SparseMat_ (const Mat &m)
 converts dense matrix to the sparse form More...
 
SparseMatIterator_< _Tp > begin ()
 returns sparse matrix iterator pointing to the first sparse matrix element More...
 
SparseMatConstIterator_< _Tp > begin () const
 returns read-only sparse matrix iterator pointing to the first sparse matrix element More...
 
int channels () const
 returns the number of channels in each matrix element More...
 
CV_NODISCARD_STD SparseMat_ clone () const
 makes full copy of the matrix. All the elements are duplicated More...
 
void create (int dims, const int *_sizes)
 equivalent to cv::SparseMat::create(dims, _sizes, DataType<_Tp>::type) More...
 
int depth () const
 returns depth of the matrix elements More...
 
SparseMatIterator_< _Tp > end ()
 returns sparse matrix iterator pointing to the element following the last sparse matrix element More...
 
SparseMatConstIterator_< _Tp > end () const
 returns read-only sparse matrix iterator pointing to the element following the last sparse matrix element More...
 
_Tp operator() (int i0, size_t *hashval=0) const
 equivalent to SparseMat::value<_Tp>(i0, hashval) More...
 
_Tp operator() (int i0, int i1, size_t *hashval=0) const
 equivalent to SparseMat::value<_Tp>(i0, i1, hashval) More...
 
_Tp operator() (int i0, int i1, int i2, size_t *hashval=0) const
 equivalent to SparseMat::value<_Tp>(i0, i1, i2, hashval) More...
 
_Tp operator() (const int *idx, size_t *hashval=0) const
 equivalent to SparseMat::value<_Tp>(idx, hashval) More...
 
SparseMat_operator= (const SparseMat &m)
 converts the old-style sparse matrix to the C++ class. All the elements are copied More...
 
SparseMat_operator= (const SparseMat_ &m)
 the assignment operator. This is O(1) operation - no data is copied More...
 
SparseMat_operator= (const Mat &m)
 converts dense matrix to the sparse form More...
 
_Tp & ref (int i0, size_t *hashval=0)
 equivalent to SparseMat::ref<_Tp>(i0, hashval) More...
 
_Tp & ref (int i0, int i1, size_t *hashval=0)
 equivalent to SparseMat::ref<_Tp>(i0, i1, hashval) More...
 
_Tp & ref (int i0, int i1, int i2, size_t *hashval=0)
 equivalent to SparseMat::ref<_Tp>(i0, i1, i2, hashval) More...
 
_Tp & ref (const int *idx, size_t *hashval=0)
 equivalent to SparseMat::ref<_Tp>(idx, hashval) More...
 
int type () const
 converts sparse matrix to the old-style CvSparseMat. All the elements are copied More...
 
- Public Member Functions inherited from cv::SparseMat
 SparseMat ()
 Various SparseMat constructors. More...
 
 SparseMat (int dims, const int *_sizes, int _type)
 
 SparseMat (const SparseMat &m)
 
 SparseMat (const Mat &m)
 
 ~SparseMat ()
 the destructor More...
 
void addref ()
 manually increments the reference counter to the header. More...
 
void assignTo (SparseMat &m, int type=-1) const
 
int channels () const
 returns the number of channels More...
 
void clear ()
 sets all the sparse matrix elements to 0, which means clearing the hash table. More...
 
CV_NODISCARD_STD SparseMat clone () const
 creates full copy of the matrix More...
 
void convertTo (SparseMat &m, int rtype, double alpha=1) const
 multiplies all the matrix elements by the specified scale factor alpha and converts the results to the specified data type More...
 
void convertTo (Mat &m, int rtype, double alpha=1, double beta=0) const
 converts sparse matrix to dense n-dim matrix with optional type conversion and scaling. More...
 
void copyTo (SparseMat &m) const
 copies all the data to the destination matrix. All the previous content of m is erased More...
 
void copyTo (Mat &m) const
 converts sparse matrix to dense matrix. More...
 
void create (int dims, const int *_sizes, int _type)
 reallocates sparse matrix. More...
 
int depth () const
 returns the depth of sparse matrix elements More...
 
int dims () const
 returns the matrix dimensionality More...
 
size_t elemSize () const
 converts sparse matrix to the old-style representation; all the elements are copied. More...
 
size_t elemSize1 () const
 returns elemSize()/channels() More...
 
SparseMatIterator end ()
 returns the sparse matrix iterator at the matrix end More...
 
SparseMatConstIterator end () const
 returns the read-only sparse matrix iterator at the matrix end More...
 
template<typename _Tp >
SparseMatIterator_< _Tp > end ()
 returns the typed sparse matrix iterator at the matrix end More...
 
template<typename _Tp >
SparseMatConstIterator_< _Tp > end () const
 returns the typed read-only sparse matrix iterator at the matrix end More...
 
void erase (int i0, int i1, size_t *hashval=0)
 erases the specified element (2D case) More...
 
void erase (int i0, int i1, int i2, size_t *hashval=0)
 erases the specified element (3D case) More...
 
void erase (const int *idx, size_t *hashval=0)
 erases the specified element (nD case) More...
 
size_t hash (int i0) const
 computes the element hash value (1D case) More...
 
size_t hash (int i0, int i1) const
 computes the element hash value (2D case) More...
 
size_t hash (int i0, int i1, int i2) const
 computes the element hash value (3D case) More...
 
size_t hash (const int *idx) const
 computes the element hash value (nD case) More...
 
ucharnewNode (const int *idx, size_t hashval)
 
Nodenode (size_t nidx)
 
const Nodenode (size_t nidx) const
 
size_t nzcount () const
 returns the number of non-zero elements (=the number of hash table nodes) More...
 
SparseMatoperator= (const SparseMat &m)
 assignment operator. This is O(1) operation, i.e. no data is copied More...
 
SparseMatoperator= (const Mat &m)
 equivalent to the corresponding constructor More...
 
void release ()
 
void removeNode (size_t hidx, size_t nidx, size_t previdx)
 
void resizeHashTab (size_t newsize)
 
const int * size () const
 returns the array of sizes, or NULL if the matrix is not allocated More...
 
int size (int i) const
 returns the size of i-th matrix dimension (or 0) More...
 
int type () const
 returns type of sparse matrix elements More...
 
template<typename _Tp >
_Tp & value (Node *n)
 returns the value stored in the sparse martix node More...
 
template<typename _Tp >
const _Tp & value (const Node *n) const
 returns the value stored in the sparse martix node More...
 
ucharptr (int i0, bool createMissing, size_t *hashval=0)
 returns pointer to the specified element (1D case) More...
 
ucharptr (int i0, int i1, bool createMissing, size_t *hashval=0)
 returns pointer to the specified element (2D case) More...
 
ucharptr (int i0, int i1, int i2, bool createMissing, size_t *hashval=0)
 returns pointer to the specified element (3D case) More...
 
ucharptr (const int *idx, bool createMissing, size_t *hashval=0)
 returns pointer to the specified element (nD case) More...
 
template<typename _Tp >
_Tp & ref (int i0, size_t *hashval=0)
 returns reference to the specified element (1D case) More...
 
template<typename _Tp >
_Tp & ref (int i0, int i1, size_t *hashval=0)
 returns reference to the specified element (2D case) More...
 
template<typename _Tp >
_Tp & ref (int i0, int i1, int i2, size_t *hashval=0)
 returns reference to the specified element (3D case) More...
 
template<typename _Tp >
_Tp & ref (const int *idx, size_t *hashval=0)
 returns reference to the specified element (nD case) More...
 
template<typename _Tp >
_Tp value (int i0, size_t *hashval=0) const
 returns value of the specified element (1D case) More...
 
template<typename _Tp >
_Tp value (int i0, int i1, size_t *hashval=0) const
 returns value of the specified element (2D case) More...
 
template<typename _Tp >
_Tp value (int i0, int i1, int i2, size_t *hashval=0) const
 returns value of the specified element (3D case) More...
 
template<typename _Tp >
_Tp value (const int *idx, size_t *hashval=0) const
 returns value of the specified element (nD case) More...
 
template<typename _Tp >
const _Tp * find (int i0, size_t *hashval=0) const
 returns pointer to the specified element (1D case) More...
 
template<typename _Tp >
const _Tp * find (int i0, int i1, size_t *hashval=0) const
 returns pointer to the specified element (2D case) More...
 
template<typename _Tp >
const _Tp * find (int i0, int i1, int i2, size_t *hashval=0) const
 returns pointer to the specified element (3D case) More...
 
template<typename _Tp >
const _Tp * find (const int *idx, size_t *hashval=0) const
 returns pointer to the specified element (nD case) More...
 
SparseMatIterator begin ()
 returns the sparse matrix iterator at the matrix beginning More...
 
template<typename _Tp >
SparseMatIterator_< _Tp > begin ()
 returns the sparse matrix iterator at the matrix beginning More...
 
SparseMatConstIterator begin () const
 returns the read-only sparse matrix iterator at the matrix beginning More...
 
template<typename _Tp >
SparseMatConstIterator_< _Tp > begin () const
 returns the read-only sparse matrix iterator at the matrix beginning More...
 

Additional Inherited Members

- Public Attributes inherited from cv::SparseMat
int flags
 
Hdrhdr
 

Detailed Description

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

Template sparse n-dimensional array class derived from SparseMat.

SparseMat_ is a thin wrapper on top of SparseMat created in the same way as Mat_ . It simplifies notation of some operations:

int sz[] = {10, 20, 30};
SparseMat_<double> M(3, sz);
...
M.ref(1, 2, 3) = M(4, 5, 6) + M(7, 8, 9);

Member Typedef Documentation

◆ const_iterator

template<typename _Tp>
typedef SparseMatConstIterator_<_Tp> cv::SparseMat_< _Tp >::const_iterator

◆ iterator

template<typename _Tp>
typedef SparseMatIterator_<_Tp> cv::SparseMat_< _Tp >::iterator

Constructor & Destructor Documentation

◆ SparseMat_() [1/5]

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

the default constructor

◆ SparseMat_() [2/5]

template<typename _Tp>
cv::SparseMat_< _Tp >::SparseMat_ ( int  dims,
const int *  _sizes 
)

the full constructor equivalent to SparseMat(dims, _sizes, DataType<_Tp>::type)

◆ SparseMat_() [3/5]

template<typename _Tp>
cv::SparseMat_< _Tp >::SparseMat_ ( const SparseMat m)

the copy constructor. If DataType<_Tp>.type != m.type(), the m elements are converted

◆ SparseMat_() [4/5]

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

the copy constructor. This is O(1) operation - no data is copied

◆ SparseMat_() [5/5]

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

converts dense matrix to the sparse form

Member Function Documentation

◆ begin() [1/2]

template<typename _Tp>
SparseMatIterator_<_Tp> cv::SparseMat_< _Tp >::begin ( )

returns sparse matrix iterator pointing to the first sparse matrix element

◆ begin() [2/2]

template<typename _Tp>
SparseMatConstIterator_<_Tp> cv::SparseMat_< _Tp >::begin ( ) const

returns read-only sparse matrix iterator pointing to the first sparse matrix element

◆ channels()

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

returns the number of channels in each matrix element

◆ clone()

template<typename _Tp>
CV_NODISCARD_STD SparseMat_ cv::SparseMat_< _Tp >::clone ( ) const

makes full copy of the matrix. All the elements are duplicated

◆ create()

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

equivalent to cv::SparseMat::create(dims, _sizes, DataType<_Tp>::type)

◆ depth()

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

returns depth of the matrix elements

◆ end() [1/2]

template<typename _Tp>
SparseMatIterator_<_Tp> cv::SparseMat_< _Tp >::end ( )

returns sparse matrix iterator pointing to the element following the last sparse matrix element

◆ end() [2/2]

template<typename _Tp>
SparseMatConstIterator_<_Tp> cv::SparseMat_< _Tp >::end ( ) const

returns read-only sparse matrix iterator pointing to the element following the last sparse matrix element

◆ operator()() [1/4]

template<typename _Tp>
_Tp cv::SparseMat_< _Tp >::operator() ( int  i0,
size_t *  hashval = 0 
) const

equivalent to SparseMat::value<_Tp>(i0, hashval)

◆ operator()() [2/4]

template<typename _Tp>
_Tp cv::SparseMat_< _Tp >::operator() ( int  i0,
int  i1,
size_t *  hashval = 0 
) const

equivalent to SparseMat::value<_Tp>(i0, i1, hashval)

◆ operator()() [3/4]

template<typename _Tp>
_Tp cv::SparseMat_< _Tp >::operator() ( int  i0,
int  i1,
int  i2,
size_t *  hashval = 0 
) const

equivalent to SparseMat::value<_Tp>(i0, i1, i2, hashval)

◆ operator()() [4/4]

template<typename _Tp>
_Tp cv::SparseMat_< _Tp >::operator() ( const int *  idx,
size_t *  hashval = 0 
) const

equivalent to SparseMat::value<_Tp>(idx, hashval)

◆ operator=() [1/3]

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

converts the old-style sparse matrix to the C++ class. All the elements are copied

the assignment operator. If DataType<_Tp>.type != m.type(), the m elements are converted

◆ operator=() [2/3]

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

the assignment operator. This is O(1) operation - no data is copied

◆ operator=() [3/3]

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

converts dense matrix to the sparse form

◆ ref() [1/4]

template<typename _Tp>
_Tp& cv::SparseMat_< _Tp >::ref ( int  i0,
size_t *  hashval = 0 
)

equivalent to SparseMat::ref<_Tp>(i0, hashval)

◆ ref() [2/4]

template<typename _Tp>
_Tp& cv::SparseMat_< _Tp >::ref ( int  i0,
int  i1,
size_t *  hashval = 0 
)

equivalent to SparseMat::ref<_Tp>(i0, i1, hashval)

◆ ref() [3/4]

template<typename _Tp>
_Tp& cv::SparseMat_< _Tp >::ref ( int  i0,
int  i1,
int  i2,
size_t *  hashval = 0 
)

equivalent to SparseMat::ref<_Tp>(i0, i1, i2, hashval)

◆ ref() [4/4]

template<typename _Tp>
_Tp& cv::SparseMat_< _Tp >::ref ( const int *  idx,
size_t *  hashval = 0 
)

equivalent to SparseMat::ref<_Tp>(idx, hashval)

◆ type()

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

converts sparse matrix to the old-style CvSparseMat. All the elements are copied

returns type of the matrix elements


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