OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
cv::SparseMat_< _Tp > 类模板引用

模板稀疏n维数组类,派生自SparseMat更多...

#include <opencv2/core/mat.hpp>

cv::SparseMat_< _Tp > 的协作图

公开类型

typedef SparseMatConstIterator_< _Tpconst_iterator (常量迭代器)
 
typedef SparseMatIterator_< _Tpiterator (迭代器)
 
- 继承自 cv::SparseMat 的公共类型
enum  {
  MAGIC_VAL =0x42FD0000 ,
  MAX_DIM =32 ,
  HASH_SCALE =0x5bd1e995 ,
  HASH_BIT =0x80000000
}
 
typedef SparseMatConstIterator const_iterator (常量迭代器)
 
typedef SparseMatIterator iterator (迭代器)
 

公开成员函数

 SparseMat_ ()
 默认构造函数
 
 SparseMat_ (const Mat &m)
 将密集矩阵转换为稀疏形式
 
 SparseMat_ (const SparseMat &m)
 拷贝构造函数。如果DataType<_Tp>.type != m.type(),m元素将被转换
 
 SparseMat_ (const SparseMat_ &m)
 拷贝构造函数。这是一个O(1)操作 - 没有数据被拷贝
 
 SparseMat_ (int dims, const int *_sizes)
 与SparseMat(dims, _sizes, DataType<_Tp>::type)等效的完整构造函数
 
SparseMatIterator_< _Tpbegin (起始迭代器) ()
 返回指向第一个稀疏矩阵元素的稀疏矩阵迭代器
 
SparseMatConstIterator_< _Tpbegin () const
 返回指向第一个稀疏矩阵元素的只读稀疏矩阵迭代器
 
int channels () const
 返回每个矩阵元素中的通道数
 
CV_NODISCARD_STD SparseMat_ clone () const
 完全复制矩阵。所有元素都被复制
 
void create (int dims, const int *_sizes)
 等效于cv::SparseMat::create(dims, _sizes, DataType<_Tp>::type)
 
int depth () const
 返回矩阵元素的深度
 
SparseMatIterator_< _Tpend (结束迭代器) ()
 返回指向最后一个稀疏矩阵元素之后的元素的稀疏矩阵迭代器
 
SparseMatConstIterator_< _Tpend () const
 返回指向最后一个稀疏矩阵元素之后的元素的只读稀疏矩阵迭代器
 
_Tp operator() (const int *idx, size_t *hashval=0) const
 等效于SparseMat::value<_Tp>(idx, hashval)
 
_Tp operator() (int i0, int i1, int i2, size_t *hashval=0) const
 等效于SparseMat::value<_Tp>(i0, i1, i2, hashval)
 
_Tp operator() (int i0, int i1, size_t *hashval=0) const
 等效于SparseMat::value<_Tp>(i0, i1, hashval)
 
_Tp operator() (int i0, size_t *hashval=0) const
 等效于SparseMat::value<_Tp>(i0, hashval)
 
SparseMat_operator= (const Mat &m)
 将密集矩阵转换为稀疏形式
 
SparseMat_operator= (const SparseMat &m)
 将旧式稀疏矩阵转换为C++类。所有元素都被拷贝
 
SparseMat_operator= (const SparseMat_ &m)
 赋值操作符。这是一个O(1)操作 - 没有数据被拷贝
 
_Tpref (const int *idx, size_t *hashval=0)
 等效于SparseMat::ref<_Tp>(idx, hashval)
 
_Tpref (int i0, int i1, int i2, size_t *hashval=0)
 等效于SparseMat::ref<_Tp>(i0, i1, i2, hashval)
 
_Tpref (int i0, int i1, size_t *hashval=0)
 等效于SparseMat::ref<_Tp>(i0, i1, hashval)
 
_Tpref (int i0, size_t *hashval=0)
 等效于SparseMat::ref<_Tp>(i0, hashval)
 
int type () const
 将稀疏矩阵转换为旧式CvSparseMat。所有元素都被拷贝
 
- 继承自 cv::SparseMat 的公共成员函数
 SparseMat ()
 各种 SparseMat 构造函数。
 
 SparseMat (const Mat &m)
 
 SparseMat (const SparseMat &m)
 
 SparseMat (int dims, const int *_sizes, int _type)
 
 ~SparseMat ()
 析构函数
 
void addref (增加引用) ()
 手动增加头部的引用计数器。
 
void assignTo (SparseMat &m, int type=-1) const
 
int channels () const
 返回通道数
 
void clear ()
 将所有稀疏矩阵元素设置为0,这意味着清除哈希表。
 
CV_NODISCARD_STD SparseMat clone () const
 创建矩阵的完整副本
 
void convertTo (Mat &m, int rtype, double alpha=1, double beta=0) const
 将稀疏矩阵转换为密集n维矩阵,并可选择进行类型转换和缩放。
 
void convertTo (SparseMat &m, int rtype, double alpha=1) const
 将所有矩阵元素乘以指定的比例因子alpha并将结果转换为指定的数据类型
 
void copyTo (Mat &m) const
 将稀疏矩阵转换为密集矩阵。
 
void copyTo (SparseMat &m) const
 将所有数据复制到目标矩阵。m的先前内容将被擦除
 
void create (int dims, const int *_sizes, int _type)
 重新分配稀疏矩阵。
 
int depth () const
 返回稀疏矩阵元素的深度
 
int dims () const
 返回矩阵的维度
 
size_t elemSize () const
 将稀疏矩阵转换为旧式表示;所有元素都被拷贝。
 
size_t elemSize1 () const
 返回 elemSize()/channels()
 
SparseMatIterator end (结束迭代器) ()
 返回矩阵末尾的稀疏矩阵迭代器
 
template<typename _Tp >
SparseMatIterator_< _Tpend (结束迭代器) ()
 返回矩阵末尾的类型化稀疏矩阵迭代器
 
SparseMatConstIterator end () const
 返回矩阵末尾的只读稀疏矩阵迭代器
 
template<typename _Tp >
SparseMatConstIterator_< _Tpend () const
 返回矩阵末尾的类型化只读稀疏矩阵迭代器
 
void erase (const int *idx, size_t *hashval=0)
 擦除指定的元素 (nD情况)
 
void erase (int i0, int i1, int i2, size_t *hashval=0)
 擦除指定的元素 (3D情况)
 
void erase (int i0, int i1, size_t *hashval=0)
 擦除指定的元素 (2D情况)
 
size_t hash (const int *idx) const
 计算元素的哈希值 (nD情况)
 
size_t hash (int i0) const
 计算元素的哈希值 (1D情况)
 
size_t hash (int i0, int i1) const
 计算元素的哈希值 (2D情况)
 
size_t hash (int i0, int i1, int i2) const
 计算元素的哈希值 (3D情况)
 
ucharnewNode (const int *idx, size_t hashval)
 
Nodenode (size_t nidx)
 
const Nodenode (size_t nidx) const
 
size_t nzcount () const
 返回非零元素的数量(=哈希表节点的数量)
 
SparseMatoperator= (const Mat &m)
 等效于相应的构造函数
 
SparseMatoperator= (const SparseMat &m)
 赋值操作符。这是一个O(1)操作,即没有数据被拷贝
 
void release (释放) ()
 
void removeNode (size_t hidx, size_t nidx, size_t previdx)
 
void resizeHashTab (size_t newsize)
 
const int * size () const
 返回尺寸数组,如果矩阵未分配则返回NULL
 
int size (int i) const
 返回第i个矩阵维度的尺寸(或0)
 
int type () const
 返回稀疏矩阵元素的类型
 
template<typename _Tp >
const _Tpvalue (const Node *n) const
 返回存储在稀疏矩阵节点中的值
 
template<typename _Tp >
_Tpvalue (Node *n)
 返回存储在稀疏矩阵节点中的值
 
ucharptr (int i0, bool createMissing, size_t *hashval=0)
 返回指向指定元素的指针 (1D情况)
 
ucharptr (int i0, int i1, bool createMissing, size_t *hashval=0)
 返回指向指定元素的指针 (2D情况)
 
ucharptr (int i0, int i1, int i2, bool createMissing, size_t *hashval=0)
 返回指向指定元素的指针 (3D情况)
 
ucharptr (const int *idx, bool createMissing, size_t *hashval=0)
 返回指向指定元素的指针 (nD情况)
 
template<typename _Tp >
_Tpref (int i0, size_t *hashval=0)
 返回对指定元素的引用(1D 情况)
 
template<typename _Tp >
_Tpref (int i0, int i1, size_t *hashval=0)
 返回对指定元素的引用(2D 情况)
 
template<typename _Tp >
_Tpref (int i0, int i1, int i2, size_t *hashval=0)
 返回对指定元素的引用(3D 情况)
 
template<typename _Tp >
_Tpref (const int *idx, size_t *hashval=0)
 返回对指定元素的引用 (nD情况)
 
template<typename _Tp >
_Tp value (int i0, size_t *hashval=0) const
 返回指定元素的值 (1D情况)
 
template<typename _Tp >
_Tp value (int i0, int i1, size_t *hashval=0) const
 返回指定元素的值 (2D情况)
 
template<typename _Tp >
_Tp value (int i0, int i1, int i2, size_t *hashval=0) const
 返回指定元素的值 (3D情况)
 
template<typename _Tp >
_Tp value (const int *idx, size_t *hashval=0) const
 返回指定元素的值 (nD情况)
 
template<typename _Tp >
const _Tpfind (int i0, size_t *hashval=0) const
 返回指向指定元素的指针 (1D情况)
 
template<typename _Tp >
const _Tpfind (int i0, int i1, size_t *hashval=0) const
 返回指向指定元素的指针 (2D情况)
 
template<typename _Tp >
const _Tpfind (int i0, int i1, int i2, size_t *hashval=0) const
 返回指向指定元素的指针 (3D情况)
 
template<typename _Tp >
const _Tpfind (const int *idx, size_t *hashval=0) const
 返回指向指定元素的指针 (nD情况)
 
SparseMatIterator begin (起始迭代器) ()
 返回矩阵开头的稀疏矩阵迭代器
 
template<typename _Tp >
SparseMatIterator_< _Tpbegin (起始迭代器) ()
 返回矩阵开头的稀疏矩阵迭代器
 
SparseMatConstIterator begin () const
 返回矩阵开头的只读稀疏矩阵迭代器
 
template<typename _Tp >
SparseMatConstIterator_< _Tpbegin () const
 返回矩阵开头的只读稀疏矩阵迭代器
 

更多继承的成员

- 继承自 cv::SparseMat 的公共属性
int flags (标志)
 
Hdrhdr
 

详细说明

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

模板稀疏n维数组类,派生自SparseMat

SparseMat_ 是在SparseMat之上创建的轻量级封装,其方式与Mat_类似。它简化了一些操作的表示

int sz[] = {10, 20, 30};
...
M.ref(1, 2, 3) = M(4, 5, 6) + M(7, 8, 9);
模板稀疏n维数组类,派生自SparseMat。
定义 mat.hpp:3079

成员类型定义说明

◆ const_iterator

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

◆ iterator

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

构造函数与析构函数说明

◆ SparseMat_() [1/5]

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

默认构造函数

◆ SparseMat_() [2/5]

template<typename _Tp >
cv::SparseMat_< _Tp >::SparseMat_ ( int dims (维度),
const int * _sizes (大小数组) )

与SparseMat(dims, _sizes, DataType<_Tp>::type)等效的完整构造函数

◆ SparseMat_() [3/5]

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

拷贝构造函数。如果DataType<_Tp>.type != m.type(),m元素将被转换

◆ SparseMat_() [4/5]

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

拷贝构造函数。这是一个O(1)操作 - 没有数据被拷贝

◆ SparseMat_() [5/5]

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

将密集矩阵转换为稀疏形式

成员函数说明

◆ begin() [1/2]

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

返回指向第一个稀疏矩阵元素的稀疏矩阵迭代器

◆ begin() [2/2]

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

返回指向第一个稀疏矩阵元素的只读稀疏矩阵迭代器

◆ channels()

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

返回每个矩阵元素中的通道数

◆ clone()

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

完全复制矩阵。所有元素都被复制

◆ create()

template<typename _Tp >
void cv::SparseMat_< _Tp >::create ( int dims (维度),
const int * _sizes (大小数组) )

等效于cv::SparseMat::create(dims, _sizes, DataType<_Tp>::type)

◆ depth()

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

返回矩阵元素的深度

◆ end() [1/2]

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

返回指向最后一个稀疏矩阵元素之后的元素的稀疏矩阵迭代器

◆ end() [2/2]

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

返回指向最后一个稀疏矩阵元素之后的元素的只读稀疏矩阵迭代器

◆ operator()() [1/4]

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

等效于SparseMat::value<_Tp>(idx, hashval)

◆ operator()() [2/4]

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

等效于SparseMat::value<_Tp>(i0, i1, i2, hashval)

◆ operator()() [3/4]

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

等效于SparseMat::value<_Tp>(i0, i1, hashval)

◆ operator()() [4/4]

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

等效于SparseMat::value<_Tp>(i0, hashval)

◆ operator=() [1/3]

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

将密集矩阵转换为稀疏形式

◆ operator=() [2/3]

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

将旧式稀疏矩阵转换为C++类。所有元素都被拷贝

赋值操作符。如果DataType<_Tp>.type != m.type(),m元素将被转换

◆ operator=() [3/3]

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

赋值操作符。这是一个O(1)操作 - 没有数据被拷贝

◆ ref() [1/4]

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

等效于SparseMat::ref<_Tp>(idx, hashval)

◆ ref() [2/4]

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

等效于SparseMat::ref<_Tp>(i0, i1, i2, hashval)

◆ ref() [3/4]

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

等效于SparseMat::ref<_Tp>(i0, i1, hashval)

◆ ref() [4/4]

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

等效于SparseMat::ref<_Tp>(i0, hashval)

◆ type()

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

将稀疏矩阵转换为旧式CvSparseMat。所有元素都被拷贝

返回矩阵元素的类型


该类的文档由以下文件生成: