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 |
![]() |
|
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) | |
![]() |
|
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) |
![]() |
|
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) |
その他の継承メンバ |
|
![]() |
|
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 |
![]() |
|
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 ループと完全に互換性があります.例えば,このようなループは,ルックアップテーブルを安全に適用するために利用できます.