![]() |
OpenCV 5.0.0
Open Source Computer Vision
|
SparseMat クラスは多次元のスパース数値配列を表す。 詳細...
#include <opencv2/core/mat.hpp>
クラス | |
| struct | Hdr |
| 疎行列ヘッダ 続きを読む... | |
| struct | Node |
| 疎行列ノード - ハッシュテーブルの要素 続きを読む... | |
公開型 | |
| enum | { MAGIC_VAL =0x42FD0000 , MAX_DIM =32 , HASH_SCALE =0x5bd1e995 , HASH_BIT =0x80000000 } |
| typedef SparseMatConstIterator | const_iterator |
| typedef SparseMatIterator | iterator |
公開メンバ関数 | |
| 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_< _Tp > | end () |
| 行列の末尾を指す型付き疎行列イテレータを返す | |
| SparseMatConstIterator | end () const |
| 行列の末尾を指す読み取り専用の疎行列イテレータを返す | |
| template<typename _Tp > | |
| SparseMatConstIterator_< _Tp > | end () 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の場合) | |
| uchar * | newNode (const int *idx, size_t hashval) |
| Node * | node (size_t nidx) |
| const Node * | node (size_t nidx) const |
| size_t | nzcount () const |
| 非ゼロ要素の数(=ハッシュテーブルのノード数)を返す | |
| SparseMat & | operator= (const Mat &m) |
| 対応するコンストラクタと等価 | |
| SparseMat & | operator= (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 _Tp & | value (const Node *n) const |
| 疎行列ノードに格納された値を返す | |
| template<typename _Tp > | |
| _Tp & | value (Node *n) |
| 疎行列ノードに格納された値を返す | |
| uchar * | ptr (int i0, bool createMissing, size_t *hashval=0) |
| 指定した要素へのポインタを返す(1Dの場合) | |
| uchar * | ptr (int i0, int i1, bool createMissing, size_t *hashval=0) |
| 指定した要素へのポインタを返す(2Dの場合) | |
| uchar * | ptr (int i0, int i1, int i2, bool createMissing, size_t *hashval=0) |
| 指定した要素へのポインタを返す(3Dの場合) | |
| uchar * | ptr (const int *idx, bool createMissing, size_t *hashval=0) |
| 指定した要素へのポインタを返す(nDの場合) | |
| template<typename _Tp > | |
| _Tp & | ref (int i0, size_t *hashval=0) |
| 指定した要素への参照を返す(1Dの場合) | |
| template<typename _Tp > | |
| _Tp & | ref (int i0, int i1, size_t *hashval=0) |
| 指定した要素への参照を返す(2Dの場合) | |
| template<typename _Tp > | |
| _Tp & | ref (int i0, int i1, int i2, size_t *hashval=0) |
| 指定した要素への参照を返す(3Dの場合) | |
| template<typename _Tp > | |
| _Tp & | ref (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 _Tp * | find (int i0, size_t *hashval=0) const |
| 指定した要素へのポインタを返す(1Dの場合) | |
| template<typename _Tp > | |
| const _Tp * | find (int i0, int i1, size_t *hashval=0) const |
| 指定した要素へのポインタを返す(2Dの場合) | |
| template<typename _Tp > | |
| const _Tp * | find (int i0, int i1, int i2, size_t *hashval=0) const |
| 指定した要素へのポインタを返す(3Dの場合) | |
| template<typename _Tp > | |
| const _Tp * | find (const int *idx, size_t *hashval=0) const |
| 指定した要素へのポインタを返す(nDの場合) | |
| SparseMatIterator | begin () |
| 行列の先頭を指す疎行列イテレータを返す | |
| template<typename _Tp > | |
| SparseMatIterator_< _Tp > | begin () |
| 行列の先頭を指す疎行列イテレータを返す | |
| SparseMatConstIterator | begin () const |
| 行列の先頭を指す読み取り専用の疎行列イテレータを返す | |
| template<typename _Tp > | |
| SparseMatConstIterator_< _Tp > | begin () const |
| 行列の先頭を指す読み取り専用の疎行列イテレータを返す | |
公開変数類 | |
| int | flags |
| Hdr * | hdr |
SparseMat クラスは多次元のスパース数値配列を表す。
このような疎な配列には、Mat が格納できる任意の型の要素を格納できる。Sparse (疎) とは、非ゼロ要素のみが格納されることを意味する (ただし、疎行列に対する演算の結果として、格納されている要素の一部が実際に 0 になることもある。そのような要素を検出して SparseMat::erase を使って削除するのは利用者の責任である)。非ゼロ要素は、満杯になると拡張されるハッシュテーブルに格納されるため、(要素が存在するかどうかにかかわらず) 平均で O(1) の検索時間が得られる。要素には次のメソッドを使ってアクセスできる:
| cv::SparseMat::SparseMat | ( | ) |
各種の SparseMat コンストラクタ。
| cv::SparseMat::SparseMat | ( | int | dims, |
| const int * | _sizes, | ||
| int | _type ) |
これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。
| dims | 配列の次元数。 |
| _sizes | 全次元におけるスパース行列のサイズ。 |
| _type | スパース行列のデータ型。 |
| cv::SparseMat::SparseMat | ( | const SparseMat & | m | ) |
これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。
| m | コピーコンストラクタ用のソース行列。m が密行列 (ocvMat) の場合は、スパース表現に変換される。 |
|
explicit |
これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。
| m | コピーコンストラクタ用のソース行列。m が密行列 (ocvMat) の場合は、スパース表現に変換される。 |
| cv::SparseMat::~SparseMat | ( | ) |
デストラクタ
| void cv::SparseMat::addref | ( | ) |
ヘッダの参照カウンタを手動でインクリメントする。
| void cv::SparseMat::assignTo | ( | SparseMat & | m, |
| int | type = -1 ) const |
| SparseMatIterator cv::SparseMat::begin | ( | ) |
行列の先頭を指すスパース行列イテレータを返す
最初のスパース行列要素を指すスパース行列イテレータを返す
| SparseMatIterator_< _Tp > cv::SparseMat::begin | ( | ) |
行列の先頭を指すスパース行列イテレータを返す
| SparseMatConstIterator cv::SparseMat::begin | ( | ) | const |
行列の先頭を指す読み取り専用スパース行列イテレータを返す
| SparseMatConstIterator_< _Tp > cv::SparseMat::begin | ( | ) | const |
行列の先頭を指す読み取り専用スパース行列イテレータを返す
| int cv::SparseMat::channels | ( | ) | const |
チャンネル数を返す
| void cv::SparseMat::clear | ( | ) |
スパース行列の全要素を 0 に設定する。これはハッシュテーブルをクリアすることを意味する。
| CV_NODISCARD_STD SparseMat cv::SparseMat::clone | ( | ) | const |
行列の完全なコピーを作成する
| void cv::SparseMat::convertTo | ( | Mat & | m, |
| int | rtype, | ||
| double | alpha = 1, | ||
| double | beta = 0 ) const |
スパース行列を密な n 次元行列に変換する。型変換とスケーリングは省略可能。
| [out] | m | - 出力行列。処理前に適切なサイズや型を持っていない場合は、再確保される |
| [in] | rtype | - 希望する出力行列の型、より正確にはビット深度(チャンネル数は入力と同じため)。rtype が負の場合、出力行列は入力と同じ型になる。 |
| [in] | alpha | - 省略可能なスケール係数 |
| [in] | beta | - スケーリング後の値に加算される省略可能なデルタ |
| void cv::SparseMat::convertTo | ( | SparseMat & | m, |
| int | rtype, | ||
| double | alpha = 1 ) const |
行列の全要素を指定したスケール係数 alpha で乗算し、結果を指定したデータ型に変換する
| void cv::SparseMat::copyTo | ( | Mat & | m | ) | const |
スパース行列を密行列に変換する。
| void cv::SparseMat::copyTo | ( | SparseMat & | m | ) | const |
全データを変換先の行列にコピーする。m の以前の内容はすべて消去される
| void cv::SparseMat::create | ( | int | dims, |
| const int * | _sizes, | ||
| int | _type ) |
| int cv::SparseMat::depth | ( | ) | const |
スパース行列要素のビット深度を返す
| int cv::SparseMat::dims | ( | ) | const |
行列の次元数を返す
| size_t cv::SparseMat::elemSize | ( | ) | const |
スパース行列を旧形式の表現に変換する。すべての要素がコピーされる。
各要素のバイト単位のサイズを返す(オーバーヘッド、すなわち SparseMat::Node 要素が占める領域は含まない)
| size_t cv::SparseMat::elemSize1 | ( | ) | const |
elemSize()/channels() を返す
| SparseMatIterator cv::SparseMat::end | ( | ) |
行列の末尾を指すスパース行列イテレータを返す
最後のスパース行列要素の次を指すスパース行列イテレータを返す
| SparseMatIterator_< _Tp > cv::SparseMat::end | ( | ) |
行列の末尾を指す型付きスパース行列イテレータを返す
| SparseMatConstIterator cv::SparseMat::end | ( | ) | const |
行列の末尾を指す読み取り専用スパース行列イテレータを返す
| SparseMatConstIterator_< _Tp > cv::SparseMat::end | ( | ) | const |
行列の末尾を指す型付きの読み取り専用スパース行列イテレータを返す
| void cv::SparseMat::erase | ( | const int * | idx, |
| size_t * | hashval = 0 ) |
指定した要素を消去する(nD の場合)
| void cv::SparseMat::erase | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| size_t * | hashval = 0 ) |
指定した要素を消去する(3D の場合)
| void cv::SparseMat::erase | ( | int | i0, |
| int | i1, | ||
| size_t * | hashval = 0 ) |
指定した要素を消去する(2D の場合)
| const _Tp * cv::SparseMat::find | ( | const int * | idx, |
| size_t * | hashval = 0 ) const |
指定した要素へのポインタを返す(nD の場合)
| const _Tp * cv::SparseMat::find | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| size_t * | hashval = 0 ) const |
指定した要素へのポインタを返す(3D の場合)
| const _Tp * cv::SparseMat::find | ( | int | i0, |
| int | i1, | ||
| size_t * | hashval = 0 ) const |
指定した要素へのポインタを返す(2D の場合)
指定した要素へのポインタを返す(1D の場合)
指定したスパース行列要素が存在する場合、その要素へのポインタを返す
find<_Tp>(i0,...[,hashval]) は (_const Tp*)ptr(i0,...false[,hashval]) と等価である。
指定した要素が存在しない場合、メソッドは NULL を返す。
| size_t cv::SparseMat::hash | ( | const int * | idx | ) | const |
要素のハッシュ値を計算する(nD の場合)
| size_t cv::SparseMat::hash | ( | int | i0 | ) | const |
要素のハッシュ値を計算する(1D の場合)
| size_t cv::SparseMat::hash | ( | int | i0, |
| int | i1 ) const |
要素のハッシュ値を計算する(2D の場合)
| size_t cv::SparseMat::hash | ( | int | i0, |
| int | i1, | ||
| int | i2 ) const |
要素のハッシュ値を計算する(3D の場合)
| uchar * cv::SparseMat::newNode | ( | const int * | idx, |
| size_t | hashval ) |
| Node * cv::SparseMat::node | ( | size_t | nidx | ) |
| const Node * cv::SparseMat::node | ( | size_t | nidx | ) | const |
| size_t cv::SparseMat::nzcount | ( | ) | const |
非ゼロ要素の数(= ハッシュテーブルのノード数)を返す
| uchar * cv::SparseMat::ptr | ( | const int * | idx, |
| bool | createMissing, | ||
| size_t * | hashval = 0 ) |
指定した要素へのポインタを返す(nD の場合)
| uchar * cv::SparseMat::ptr | ( | int | i0, |
| bool | createMissing, | ||
| size_t * | hashval = 0 ) |
指定した要素へのポインタを返す(1D の場合)
1D、2D、3D の場合の特殊化版と、n 次元の場合の汎用型 (generic_type) の版。行列要素へのポインタを返す。
| uchar * cv::SparseMat::ptr | ( | int | i0, |
| int | i1, | ||
| bool | createMissing, | ||
| size_t * | hashval = 0 ) |
指定した要素へのポインタを返す(2D の場合)
| uchar * cv::SparseMat::ptr | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| bool | createMissing, | ||
| size_t * | hashval = 0 ) |
指定した要素へのポインタを返す(3D の場合)
指定した要素への参照を返す(nD の場合)
指定した要素への参照を返す(3D の場合)
指定した要素への参照を返す(2D の場合)
指定した要素への参照を返す(1D の場合)
指定したスパース行列要素への読み書き可能な参照を返す。
ref<_Tp>(i0,...[,hashval]) は *(_Tp*)ptr(i0,...,true[,hashval]) と等価である。このメソッドは常に有効な参照を返す。要素が存在しなかった場合は、作成され 0 で初期化される。
| void cv::SparseMat::release | ( | ) |
| void cv::SparseMat::removeNode | ( | size_t | hidx, |
| size_t | nidx, | ||
| size_t | previdx ) |
| void cv::SparseMat::resizeHashTab | ( | size_t | newsize | ) |
| const int * cv::SparseMat::size | ( | ) | const |
サイズの配列を返す。行列が確保されていない場合は NULL を返す
| int cv::SparseMat::size | ( | int | i | ) | const |
i 番目の行列次元のサイズを返す(または 0)
| int cv::SparseMat::type | ( | ) | const |
スパース行列要素の型を返す
指定した要素の値を返す(nD の場合)
スパース行列ノードに格納された値を返す
| _Tp cv::SparseMat::value | ( | int | i0, |
| int | i1, | ||
| int | i2, | ||
| size_t * | hashval = 0 ) const |
指定した要素の値を返す(3D の場合)
指定した要素の値を返す(2D の場合)
指定した要素の値を返す(1D の場合)
指定したスパース行列要素の値を返す。
value<_Tp>(i0,...[,hashval]) は次と等価である:
つまり、要素が存在しなかった場合、メソッドは 0 を返す。
| int cv::SparseMat::flags |
| Hdr* cv::SparseMat::hdr |