|
OpenCV 4.5.3(日本語機械翻訳)
|
Template matrix class derived from Mat [詳解]
#include <mat.hpp>
cv::Matを継承しています。
公開型 |
|
| typedef _Tp | value_type |
| typedef DataType< _Tp >::channel_type | channel_type |
| typedef MatIterator_< _Tp > | iterator |
| typedef MatConstIterator_< _Tp > | const_iterator |
基底クラス
cv::Mat
に属する継承公開型 |
|
| enum | { MAGIC_VAL = 0x42FF0000 , AUTO_STEP = 0 , CONTINUOUS_FLAG = CV_MAT_CONT_FLAG , SUBMATRIX_FLAG = CV_SUBMAT_FLAG } |
| enum | { MAGIC_MASK = 0xFFFF0000 , TYPE_MASK = 0x00000FFF , DEPTH_MASK = 7 } |
公開メンバ関数 |
|
| Mat_ () CV_NOEXCEPT | |
| デフォルトコンストラクタ |
|
| Mat_ (int _rows, int _cols) | |
| Mat(_rows, _cols, DataType<_Tp>::type) と同等です. |
|
| Mat_ (int _rows, int _cols, const _Tp &value) | |
| 行列の各要素を指定された値にセットするコンストラクタ. |
|
| Mat_ (Size _size) | |
| Mat(_size, DataType<_Tp>::type) と同等です. |
|
| Mat_ (Size _size, const _Tp &value) | |
| 行列の各要素を指定された値にセットするコンストラクタ. |
|
| Mat_ (int _ndims, const int *_sizes) | |
| n-dim array constructor |
|
| Mat_ (int _ndims, const int *_sizes, const _Tp &value) | |
| 各行列要素を指定された値にセットする n-dim 配列コンストラクタ. |
|
| Mat_ (const Mat &m) | |
| コピー/変換コンストラクタ.m が異なる型の場合は,変換されます. |
|
| Mat_ (const Mat_ &m) | |
| コピーコンストラクタ |
|
| Mat_ (int _rows, int _cols, _Tp *_data, size_t _step=AUTO_STEP) | |
| ユーザが割り当てたデータの上に行列を構築します.タイプに関わらず,step はバイト(!!) です. |
|
| Mat_ (int _ndims, const int *_sizes, _Tp *_data, const size_t *_steps=0) | |
| ユーザが割り当てたデータの上に n-dim の行列を構築します. |
|
| Mat_ (const Mat_ &m, const Range &rowRange, const Range &colRange=Range::all()) | |
| 部分行列の選択 |
|
| Mat_ (const Mat_ &m, const Rect &roi) | |
| 部分行列の選択 |
|
| Mat_ (const Mat_ &m, const Range *ranges) | |
| n-dimバージョンの部分行列を選択します. |
|
| Mat_ (const Mat_ &m, const std::vector< Range > &ranges) | |
| n-dimバージョンの部分行列を選択します. |
|
| Mat_ (const MatExpr &e) | |
| 行列式から |
|
| Mat_ (const std::vector< _Tp > &vec, bool copyData=false) | |
| から行列を作成します.Vec, std::vector,Point_またはPoint3_. 行列は1つの列を持ちます. |
|
| template<int n> | |
| Mat_ (const Vec< typename DataType< _Tp >::channel_type, n > &vec, bool copyData=true) | |
| template<int m, int n> | |
| Mat_ (const Matx< typename DataType< _Tp >::channel_type, m, n > &mtx, bool copyData=true) | |
| Mat_ (const Point_< typename DataType< _Tp >::channel_type > &pt, bool copyData=true) | |
| Mat_ (const Point3_< typename DataType< _Tp >::channel_type > &pt, bool copyData=true) | |
| Mat_ (const MatCommaInitializer_< _Tp > &commaInitializer) | |
| Mat_ (std::initializer_list< _Tp > values) | |
| Mat_ (const std::initializer_list< int > sizes, const std::initializer_list< _Tp > values) | |
| template<std::size_t _Nm> | |
| Mat_ (const std::array< _Tp, _Nm > &arr, bool copyData=false) | |
| Mat_ & | operator= (const Mat &m) |
| Mat_ & | operator= (const Mat_ &m) |
| Mat_ & | operator= (const _Tp &s) |
| すべての要素を s に設定します。 |
|
| Mat_ & | operator= (const MatExpr &e) |
| 行列式の代入 |
|
| iterator | begin () |
| イテレータ.イテレータは,行末のギャップをスキップするように設計されています. |
|
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
| std::reverse_iterator< iterator > | rbegin () |
| std::reverse_iterator< iterator > | rend () |
| std::reverse_iterator< const_iterator > | rbegin () const |
| std::reverse_iterator< const_iterator > | rend () const |
| template<typename Functor > | |
| void | forEach (const Functor &operation) |
| 行列の全要素を操作するためのテンプレートメソッド. |
|
| template<typename Functor > | |
| void | forEach (const Functor &operation) const |
| void | create (int _rows, int _cols) |
| Mat::create(_rows, _cols, DataType<_Tp>::type) と同等です. |
|
| void | create (Size _size) |
| Mat::create(_size, DataType<_Tp>::type) と同等です. |
|
| void | create (int _ndims, const int *_sizes) |
| Mat::create(_ndims, _sizes, DatType<_Tp>::type) と同等です. |
|
| void | release () |
| と同等です.Mat::release()
|
|
| Mat_ | cross (const Mat_ &m) const |
| クロスプロダクト |
|
| template<typename T2 > | |
| operator Mat_< T2 > () const | |
| データ型変換 |
|
| Mat_ | row (int y) const |
| のオーバーライドされた形式Mat::row()などがあります. |
|
| Mat_ | col (int x) const |
| Mat_ | diag (int d=0) const |
| Mat_ | clone () const CV_NODISCARD |
| size_t | elemSize () const |
| のオーバーライドされた形式Mat::elemSize()などがあります. |
|
| size_t | elemSize1 () const |
| int | type () const |
| int | depth () const |
| int | channels () const |
| size_t | step1 (int i=0) const |
| size_t | stepT (int i=0) const |
| step()/sizeof(_Tp)を返します。 |
|
| Mat_ & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
| さらにいくつかのオーバーライドされたメソッド |
|
| Mat_ | operator() (const Range &rowRange, const Range &colRange) const |
| Mat_ | operator() (const Rect &roi) const |
| Mat_ | operator() (const Range *ranges) const |
| Mat_ | operator() (const std::vector< Range > &ranges) const |
| _Tp * | operator[] (int y) |
| 行および要素アクセス演算子のより便利な形式 |
|
| const _Tp * | operator[] (int y) const |
| _Tp & | operator() (const int *idx) |
| 指定された要素への参照を返す |
|
| const _Tp & | operator() (const int *idx) const |
| 指定された要素への読み取り専用の参照を返す |
|
| template<int n> | |
| _Tp & | operator() (const Vec< int, n > &idx) |
| 指定された要素への参照を返す |
|
| template<int n> | |
| const _Tp & | operator() (const Vec< int, n > &idx) const |
| 指定された要素への読み取り専用の参照を返す |
|
| _Tp & | operator() (int idx0) |
| 指定された要素への参照を返す(1次元の場合) |
|
| const _Tp & | operator() (int idx0) const |
| 指定された要素への読み取り専用の参照を返す(1Dの場合) |
|
| _Tp & | operator() (int row, int col) |
| 指定された要素への参照を返す (2Dの場合) |
|
| const _Tp & | operator() (int row, int col) const |
| 指定された要素(2Dケース)への参照を返す(読み取り専用 |
|
| _Tp & | operator() (int idx0, int idx1, int idx2) |
| 指定された要素への参照を返す (3Dの場合) |
|
| const _Tp & | operator() (int idx0, int idx1, int idx2) const |
| 指定された要素への参照を返す(3Dの場合) |
|
| _Tp & | operator() (Point pt) |
| const _Tp & | operator() (Point pt) const |
| operator std::vector< _Tp > () const | |
| ベクトルに変換します。 |
|
| template<std::size_t _Nm> | |
| operator std::array< _Tp, _Nm > () const | |
| 配列に変換します。 |
|
| template<int n> | |
| operator Vec< typename DataType< _Tp >::channel_type, n > () const | |
| への変換Vec
|
|
| template<int m, int n> | |
| operator Matx< typename DataType< _Tp >::channel_type, m, n > () const | |
| への変換Matx
|
|
| Mat_ (Mat_ &&m) | |
| Mat_ & | operator= (Mat_ &&m) |
| Mat_ (Mat &&m) | |
| Mat_ & | operator= (Mat &&m) |
| Mat_ (MatExpr &&e) | |
基底クラス
cv::Mat
に属する継承公開メンバ関数 |
|
| Mat () CV_NOEXCEPT | |
| Mat (int rows, int cols, int type) | |
| Mat (Size size, int type) | |
| Mat (int rows, int cols, int type, const Scalar &s) | |
| Mat (Size size, int type, const Scalar &s) | |
| Mat (int ndims, const int *sizes, int type) | |
| Mat (const std::vector< int > &sizes, int type) | |
| Mat (int ndims, const int *sizes, int type, const Scalar &s) | |
| Mat (const std::vector< int > &sizes, int type, const Scalar &s) | |
| Mat (const Mat &m) | |
| Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP) | |
| Mat (Size size, int type, void *data, size_t step=AUTO_STEP) | |
| Mat (int ndims, const int *sizes, int type, void *data, const size_t *steps=0) | |
| Mat (const std::vector< int > &sizes, int type, void *data, const size_t *steps=0) | |
| Mat (const Mat &m, const Range &rowRange, const Range &colRange=Range::all()) | |
| Mat (const Mat &m, const Rect &roi) | |
| Mat (const Mat &m, const Range *ranges) | |
| Mat (const Mat &m, const std::vector< Range > &ranges) | |
| template<typename _Tp > | |
| Mat (const std::vector< _Tp > &vec, bool copyData=false) | |
| template<typename _Tp , typename = typename std::enable_if<std::is_arithmetic<_Tp>::value>::type> | |
| Mat (const std::initializer_list< _Tp > list) | |
| template<typename _Tp > | |
| Mat (const std::initializer_list< int > sizes, const std::initializer_list< _Tp > list) | |
| template<typename _Tp , size_t _Nm> | |
| Mat (const std::array< _Tp, _Nm > &arr, bool copyData=false) | |
| template<typename _Tp , int n> | |
| Mat (const Vec< _Tp, n > &vec, bool copyData=true) | |
| template<typename _Tp , int m, int n> | |
| Mat (const Matx< _Tp, m, n > &mtx, bool copyData=true) | |
| template<typename _Tp > | |
| Mat (const Point_< _Tp > &pt, bool copyData=true) | |
| template<typename _Tp > | |
| Mat (const Point3_< _Tp > &pt, bool copyData=true) | |
| template<typename _Tp > | |
| Mat (const MatCommaInitializer_< _Tp > &commaInitializer) | |
| Mat (const cuda::GpuMat &m) | |
| GpuMat からデータをダウンロード |
|
| ~Mat () | |
| デストラクタ - 呼び出しrelease()
|
|
| Mat & | operator= (const Mat &m) |
| 代入演算子[【詳解】(英語]
|
|
| Mat & | operator= (const MatExpr &expr) |
| UMat | getUMat (AccessFlag accessFlags, UMatUsageFlags usageFlags=USAGE_DEFAULT) const |
| 取得UMatから最大でMat
|
|
| Mat | row (int y) const |
| 指定された行列の行に対する行列ヘッダを作成します.[【詳解】(英語]
|
|
| Mat | col (int x) const |
| 指定された行列列に対する行列ヘッダを作成します.[【詳解】(英語]
|
|
| Mat | rowRange (int startrow, int endrow) const |
| 指定された行スパンの行列ヘッダを作成します.[【詳解】(英語]
|
|
| Mat | rowRange (const Range &r) const |
| Mat | colRange (int startcol, int endcol) const |
| 指定された列スパンの行列のヘッダを作成します.[【詳解】(英語]
|
|
| Mat | colRange (const Range &r) const |
| Mat | diag (int d=0) const |
| 行列から対角線を抽出します[【詳解】(英語]
|
|
| Mat | clone () const CV_NODISCARD |
| 配列とその基礎となるデータの完全なコピーを作成します.[【詳解】(英語]
|
|
| void | copyTo (OutputArray m) const |
| 行列を別の行列にコピーします.[【詳解】(英語]
|
|
| void | copyTo (OutputArray m, InputArray mask) const |
| void | convertTo (OutputArray m, int rtype, double alpha=1, double beta=0) const |
| 任意のスケーリングを伴って,配列を別のデータ型に変換します.[【詳解】(英語]
|
|
| void | assignTo (Mat &m, int type=-1) const |
| convertTo の関数形式を提供します。[【詳解】(英語]
|
|
| Mat & | operator= (const Scalar &s) |
| 配列の要素の全部または一部を,指定された値に設定します.[【詳解】(英語]
|
|
| Mat & | setTo (InputArray value, InputArray mask=noArray()) |
| 配列の要素の全部または一部を,指定された値に設定します.[【詳解】(英語]
|
|
| Mat | reshape (int cn, int rows=0) const |
| データをコピーすることなく 2D 行列の形状やチャンネル数を変更します。[【詳解】(英語]
|
|
| Mat | reshape (int cn, int newndims, const int *newsz) const |
| Mat | reshape (int cn, const std::vector< int > &newshape) const |
| MatExpr | t () const |
| 行列の転置を行います.[【詳解】(英語]
|
|
| MatExpr | inv (int method=DECOMP_LU) const |
| 行列を反転させます。[【詳解】(英語]
|
|
| MatExpr | mul (InputArray m, double scale=1) const |
| 2 つの行列の要素毎の乗算または除算を行います.[【詳解】(英語]
|
|
| Mat | cross (InputArray m) const |
| 2 つの 3 要素のベクトルの外積を計算します.[【詳解】(英語]
|
|
| double | dot (InputArray m) const |
| 2 つのベクトルの内積を計算します.[【詳解】(英語]
|
|
| void | create (int rows, int cols, int type) |
| 必要ならば,新しい配列データを割り当てます.[【詳解】(英語]
|
|
| void | create (Size size, int type) |
| void | create (int ndims, const int *sizes, int type) |
| void | create (const std::vector< int > &sizes, int type) |
| void | addref () |
| 参照カウンタをインクリメントします。[【詳解】(英語]
|
|
| void | release () |
| 必要に応じて,参照カウンタをデクリメントし,行列を解放します。[【詳解】(英語]
|
|
| void | deallocate () |
| 内部利用関数.代わりに 'release' メソッドの利用を検討してください. |
|
| void | copySize (const Mat &m) |
| 内部使用関数.配列 _size, _step を適切に再割り当てします. |
|
| void | reserve (size_t sz) |
| 特定の行数のためにスペースを確保します。[【詳解】(英語]
|
|
| void | reserveBuffer (size_t sz) |
| 特定のバイト数の領域を確保します。[【詳解】(英語]
|
|
| void | resize (size_t sz) |
| マトリックスの行数を変更します。[【詳解】(英語]
|
|
| void | resize (size_t sz, const Scalar &s) |
| void | push_back_ (const void *elem) |
| 内部関数 |
|
| template<typename _Tp > | |
| void | push_back (const _Tp &elem) |
| 行列の最下部に要素を追加します。[【詳解】(英語]
|
|
| template<typename _Tp > | |
| void | push_back (const Mat_< _Tp > &elem) |
| template<typename _Tp > | |
| void | push_back (const std::vector< _Tp > &elem) |
| void | push_back (const Mat &m) |
| void | pop_back (size_t nelems=1) |
| 行列の最下部から要素を削除します.[【詳解】(英語]
|
|
| void | locateROI (Size &wholeSize, Point &ofs) const |
| 行列のヘッダを親行列の中に配置します。[【詳解】(英語]
|
|
| Mat & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
| 親行列内の部分行列のサイズと位置を調整します.[【詳解】(英語]
|
|
| Mat | operator() (Range rowRange, Range colRange) const |
| 矩形の部分行列を抽出します。[【詳解】(英語]
|
|
| Mat | operator() (const Rect &roi) const |
| Mat | operator() (const Range *ranges) const |
| Mat | operator() (const std::vector< Range > &ranges) const |
| template<typename _Tp > | |
| operator std::vector< _Tp > () const | |
| template<typename _Tp , int n> | |
| operator Vec< _Tp, n > () const | |
| template<typename _Tp , int m, int n> | |
| operator Matx< _Tp, m, n > () const | |
| template<typename _Tp , std::size_t _Nm> | |
| operator std::array< _Tp, _Nm > () const | |
| bool | isContinuous () const |
| 行列が連続しているかどうかを報告します。[【詳解】(英語]
|
|
| bool | isSubmatrix () const |
| 行列が別の行列の部分行列である場合は,真を返します. |
|
| size_t | elemSize () const |
| 行列の要素サイズをバイト単位で返します。[【詳解】(英語]
|
|
| size_t | elemSize1 () const |
| 各行列要素のチャンネルのサイズをバイト単位で返します。[【詳解】(英語]
|
|
| int | type () const |
| 行列要素の型を返します。[【詳解】(英語]
|
|
| int | depth () const |
| 行列の要素の深さを返します。[【詳解】(英語]
|
|
| int | channels () const |
| マトリックスチャンネルの数を返す。[【詳解】(英語]
|
|
| size_t | step1 (int i=0) const |
| 正規化されたステップを返します.[【詳解】(英語]
|
|
| bool | empty () const |
| 配列の要素が存在しない場合は,真を返します.[【詳解】(英語]
|
|
| size_t | total () const |
| 配列の総要素数を返します。[【詳解】(英語]
|
|
| size_t | total (int startDim, int endDim=INT_MAX) const |
| 配列の総要素数を返します。[【詳解】(英語]
|
|
| int | checkVector (int elemChannels, int depth=-1, bool requireContinuous=true) const |
| uchar * | ptr (int i0=0) |
| 指定された行列の行へのポインタを返します。[【詳解】(英語]
|
|
| const uchar * | ptr (int i0=0) const |
| uchar * | ptr (int row, int col) |
| const uchar * | ptr (int row, int col) const |
| uchar * | ptr (int i0, int i1, int i2) |
| const uchar * | ptr (int i0, int i1, int i2) const |
| uchar * | ptr (const int *idx) |
| const uchar * | ptr (const int *idx) const |
| template<int n> | |
| uchar * | ptr (const Vec< int, n > &idx) |
| template<int n> | |
| const uchar * | ptr (const Vec< int, n > &idx) const |
| template<typename _Tp > | |
| _Tp * | ptr (int i0=0) |
| template<typename _Tp > | |
| const _Tp * | ptr (int i0=0) const |
| template<typename _Tp > | |
| _Tp * | ptr (int row, int col) |
| template<typename _Tp > | |
| const _Tp * | ptr (int row, int col) const |
| template<typename _Tp > | |
| _Tp * | ptr (int i0, int i1, int i2) |
| template<typename _Tp > | |
| const _Tp * | ptr (int i0, int i1, int i2) const |
| template<typename _Tp > | |
| _Tp * | ptr (const int *idx) |
| template<typename _Tp > | |
| const _Tp * | ptr (const int *idx) const |
| template<typename _Tp , int n> | |
| _Tp * | ptr (const Vec< int, n > &idx) |
| template<typename _Tp , int n> | |
| const _Tp * | ptr (const Vec< int, n > &idx) const |
| template<typename _Tp > | |
| _Tp & | at (int i0=0) |
| 指定された配列要素への参照を返します。[【詳解】(英語]
|
|
| template<typename _Tp > | |
| const _Tp & | at (int i0=0) const |
| template<typename _Tp > | |
| _Tp & | at (int row, int col) |
| template<typename _Tp > | |
| const _Tp & | at (int row, int col) const |
| template<typename _Tp > | |
| _Tp & | at (int i0, int i1, int i2) |
| template<typename _Tp > | |
| const _Tp & | at (int i0, int i1, int i2) const |
| template<typename _Tp > | |
| _Tp & | at (const int *idx) |
| template<typename _Tp > | |
| const _Tp & | at (const int *idx) const |
| template<typename _Tp , int n> | |
| _Tp & | at (const Vec< int, n > &idx) |
| template<typename _Tp , int n> | |
| const _Tp & | at (const Vec< int, n > &idx) const |
| template<typename _Tp > | |
| _Tp & | at (Point pt) |
| template<typename _Tp > | |
| const _Tp & | at (Point pt) const |
| template<typename _Tp > | |
| MatIterator_< _Tp > | begin () |
| 行列のイテレータを返し,それを行列の最初の要素に設定します.[【詳解】(英語]
|
|
| template<typename _Tp > | |
| MatConstIterator_< _Tp > | begin () const |
| template<typename _Tp > | |
| std::reverse_iterator< MatIterator_< _Tp > > | rbegin () |
| と同じです.begin()と同じですが,逆方向の走査については |
|
| template<typename _Tp > | |
| std::reverse_iterator< MatConstIterator_< _Tp > > | rbegin () const |
| template<typename _Tp > | |
| MatIterator_< _Tp > | end () |
| 行列のイテレータを返し,それを最後の行列要素の後に設定します.[【詳解】(英語]
|
|
| template<typename _Tp > | |
| MatConstIterator_< _Tp > | end () const |
| template<typename _Tp > | |
| std::reverse_iterator< MatIterator_< _Tp > > | rend () |
| と同じです.end()と同じですが,逆方向の走査については |
|
| template<typename _Tp > | |
| std::reverse_iterator< MatConstIterator_< _Tp > > | rend () const |
| template<typename _Tp , typename Functor > | |
| void | forEach (const Functor &operation) |
| 与えられたファンクタを,すべての行列要素に対して並列に実行します.[【詳解】(英語]
|
|
| template<typename _Tp , typename Functor > | |
| void | forEach (const Functor &operation) const |
| Mat (Mat &&m) | |
| Mat & | operator= (Mat &&m) |
| void | updateContinuityFlag () |
| 内部使用法:継続性フラグを更新 |
|
静的公開メンバ関数 |
|
| static MatExpr | zeros (int rows, int cols) |
| のオーバーライドされた形式Mat::zeros()などがあります。もちろんデータ型は省略 |
|
| static MatExpr | zeros (Size size) |
| static MatExpr | zeros (int _ndims, const int *_sizes) |
| static MatExpr | ones (int rows, int cols) |
| static MatExpr | ones (Size size) |
| static MatExpr | ones (int _ndims, const int *_sizes) |
| static MatExpr | eye (int rows, int cols) |
| static MatExpr | eye (Size size) |
基底クラス
cv::Mat
に属する継承静的公開メンバ関数 |
|
| static Mat | diag (const Mat &d) |
| 対角線上の行列を作成します[【詳解】(英語]
|
|
| static MatExpr | zeros (int rows, int cols, int type) |
| 指定されたサイズと型の 0 個の配列を返します.[【詳解】(英語]
|
|
| static MatExpr | zeros (Size size, int type) |
| static MatExpr | zeros (int ndims, const int *sz, int type) |
| static MatExpr | ones (int rows, int cols, int type) |
| 指定されたサイズと型の,すべての 1 の配列を返します.[【詳解】(英語]
|
|
| static MatExpr | ones (Size size, int type) |
| static MatExpr | ones (int ndims, const int *sz, int type) |
| static MatExpr | eye (int rows, int cols, int type) |
| 指定されたサイズと型の単位行列を返します。[【詳解】(英語]
|
|
| static MatExpr | eye (Size size, int type) |
| static MatAllocator * | getStdAllocator () |
| そして,標準的なアロケータ |
|
| static MatAllocator * | getDefaultAllocator () |
| static void | setDefaultAllocator (MatAllocator *allocator) |
その他の継承メンバ |
|
基底クラス
cv::Mat
に属する継承公開変数類 |
|
| int | flags |
| int | dims |
| 行列の次元,>= 2 |
|
| int | rows |
| 行列の行と列の数,または,行列が 2 次元以上の場合は (-1, -1) です. |
|
| int | cols |
| uchar * | data |
| データへのポインタ |
|
| const uchar * | datastart |
| locateROIおよびadjustROIで使用されるヘルパーフィールド |
|
| const uchar * | dataend |
| const uchar * | datalimit |
| MatAllocator * | allocator |
| カスタムアロケータ |
|
| UMatData * | u |
| との相互作用UMat
|
|
| MatSize | size |
| MatStep | step |
基底クラス
cv::Mat
に属する継承限定公開メンバ関数 |
|
| template<typename _Tp , typename Functor > | |
| void | forEach_impl (const Functor &operation) |
から派生した行列クラスのテンプレート.Mat
このクラスは
Mat_<_Tp>はthinクラスの上のテンプレートラッパー.Matクラスから派生した行列クラスです.これは,余分なデータフィールドを持ちません.また,このクラスもMatは仮想メソッドを持ちません。したがって,この2つのクラスへの参照やポインタは,自由に,しかし慎重に変換することができます。例えば、以下のようになります。
はほとんどの場合で十分ですがMatはほとんどの場合で十分です。Mat_は,要素へのアクセス操作を多用する場合や,コンパイル時に行列の型がわかっている場合には,より便利です.なお
Mat::at(int y,int x)
および
Mat_::operator()(int y,int x)
は全く同じことができ、同じ速度で動作しますが、後者の方が確実に短いです。
を使うにはMat_をマルチチャンネル画像/行列に利用するにはVecをパラメータとして渡します.Mat_パラメータとして渡します。
Mat_は,C++11 の範囲ベースの for ループと完全に互換性があります.例えば,このようなループは,ルックアップテーブルを安全に適用するために利用できます.