|
| Mat_ () CV_NOEXCEPT |
| 默认构造函数
|
|
| Mat_ (const Mat &m) |
| 复制/转换构造函数。如果 m 类型不同,则进行转换
|
|
| Mat_ (const Mat_ &m) |
| 复制构造函数
|
|
| Mat_ (const Mat_ &m, const Range &rowRange, const Range &colRange=Range::all()) |
| 选择子矩阵
|
|
| Mat_ (const Mat_ &m, const Range *ranges) |
| 选择子矩阵,n维版本
|
|
| Mat_ (const Mat_ &m, const Rect &roi) |
| 选择子矩阵
|
|
| Mat_ (const Mat_ &m, const std::vector< Range > &ranges) |
| 选择子矩阵,n维版本
|
|
| Mat_ (const MatCommaInitializer_< _Tp > &commaInitializer) |
|
| Mat_ (const MatExpr &e) |
| 从矩阵表达式创建
|
|
template<int m, int n> |
| Mat_ (const Matx< typename DataType< _Tp >::channel_type, m, n > &mtx, bool copyData=true) |
|
| Mat_ (const Point3_< typename DataType< _Tp >::channel_type > &pt, bool copyData=true) |
|
| Mat_ (const Point_< typename DataType< _Tp >::channel_type > &pt, bool copyData=true) |
|
template<std::size_t _Nm> |
| Mat_ (const std::array< _Tp, _Nm > &arr, bool copyData=false) |
|
| Mat_ (const std::initializer_list< int > sizes, const std::initializer_list< _Tp > values) |
|
| Mat_ (const std::vector< _Tp > &vec, bool copyData=false) |
| 从Vec、std::vector、Point_ 或 Point3_ 创建矩阵。矩阵将只有一列
|
|
template<int n> |
| Mat_ (const Vec< typename DataType< _Tp >::channel_type, n > &vec, bool copyData=true) |
|
| Mat_ (int _ndims, const int *_sizes) |
| n维数组构造函数
|
|
| Mat_ (int _ndims, const int *_sizes, _Tp *_data, const size_t *_steps=0) |
| 在用户分配的数据之上构造n维矩阵。步长以字节为单位(!!!),与类型无关
|
|
| Mat_ (int _ndims, const int *_sizes, const _Tp &value) |
| 将每个矩阵元素设置为指定值的n维数组构造函数
|
|
| Mat_ (int _rows, int _cols) |
| 等效于 Mat(_rows, _cols, DataType<_Tp>::type)
|
|
| Mat_ (int _rows, int _cols, _Tp *_data, size_t _step=AUTO_STEP) |
| 使用用户分配的数据构造矩阵。步长单位为字节(!!!) ,与数据类型无关。
|
|
| Mat_ (int _rows, int _cols, const _Tp &value) |
| 将每个矩阵元素设置为指定值的构造函数。
|
|
| Mat_ (Mat &&m) |
|
| Mat_ (Mat_ &&m) |
|
| Mat_ (MatExpr &&e) |
|
| Mat_ (Size _size) |
| 等价于 Mat(_size, DataType<_Tp>::type)
|
|
| Mat_ (Size _size, const _Tp &value) |
| 将每个矩阵元素设置为指定值的构造函数。
|
|
| Mat_ (std::initializer_list< _Tp > values) |
|
Mat_ & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
| 一些重载方法
|
|
iterator | begin () |
| 迭代器;它们足够智能,可以跳过行尾的间隙。
|
|
const_iterator | begin () const |
|
int | channels () const |
|
CV_NODISCARD_STD Mat_ | clone () const |
|
Mat_ | col (int x) const |
|
void | create (int _ndims, const int *_sizes) |
| 等价于 Mat::create(_ndims, _sizes, DatType<_Tp>::type)
|
|
void | create (int _rows, int _cols) |
| 等价于 Mat::create(_rows, _cols, DataType<_Tp>::type)
|
|
void | create (Size _size) |
| 等价于 Mat::create(_size, DataType<_Tp>::type)
|
|
Mat_ | cross (const Mat_ &m) const |
| 叉乘
|
|
int | depth () const |
|
Mat_ | diag (int d=0) const |
|
size_t | elemSize () const |
| Mat::elemSize() 等的重载形式。
|
|
size_t | elemSize1 () const |
|
iterator | end () |
|
const_iterator | end () const |
|
template<typename Functor > |
void | forEach (const Functor &operation) |
| 用于所有矩阵元素操作的模板方法。
|
|
template<typename Functor > |
void | forEach (const Functor &operation) const |
|
template<typename T2 > |
| operator Mat_< T2 > () const |
| 数据类型转换
|
|
template<int m, int n> |
| operator Matx< typename DataType< _Tp >::channel_type, m, n > () const |
| 转换为Matx
|
|
template<std::size_t _Nm> |
| operator std::array< _Tp, _Nm > () const |
| 转换为数组。
|
|
| operator std::vector< _Tp > () const |
| 转换为向量。
|
|
template<int n> |
| operator Vec< typename DataType< _Tp >::channel_type, n > () const |
| 转换为Vec
|
|
_Tp & | operator() (const int *idx) |
| 返回对指定元素的引用。
|
|
const _Tp & | operator() (const int *idx) const |
| 返回对指定元素的只读引用。
|
|
Mat_ | operator() (const Range &rowRange, const Range &colRange) const |
|
Mat_ | operator() (const Range *ranges) const |
|
Mat_ | operator() (const Rect &roi) const |
|
Mat_ | operator() (const std::vector< Range > &ranges) 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) |
| 返回对指定元素的引用(一维情况)。
|
|
const _Tp & | operator() (int idx0) const |
| 返回对指定元素的只读引用(一维情况)。
|
|
_Tp & | operator() (int idx0, int idx1, int idx2) |
| 返回对指定元素的引用(三维情况)。
|
|
const _Tp & | operator() (int idx0, int idx1, int idx2) const |
| 返回对指定元素的只读引用(三维情况)。
|
|
_Tp & | operator() (int row, int col) |
| 返回对指定元素的引用(二维情况)。
|
|
const _Tp & | operator() (int row, int col) const |
| 返回对指定元素的只读引用(二维情况)。
|
|
_Tp & | operator() (Point pt) |
|
const _Tp & | operator() (Point pt) const |
|
Mat_ & | operator= (const _Tp &s) |
| 将所有元素设置为 s。
|
|
Mat_ & | operator= (const Mat &m) |
|
Mat_ & | operator= (const Mat_ &m) |
|
Mat_ & | operator= (const MatExpr &e) |
| 赋值矩阵表达式
|
|
Mat_ & | operator= (Mat &&m) |
|
Mat_ & | operator= (Mat_ &&m) |
|
_Tp * | operator[] (int y) |
| 更方便的行和元素访问运算符形式
|
|
const _Tp * | operator[] (int y) const |
|
std::reverse_iterator< iterator > | rbegin () |
|
std::reverse_iterator< const_iterator > | rbegin () const |
|
void | 释放 () |
| 等效于 Mat::release()
|
|
std::reverse_iterator< iterator > | rend () |
|
std::reverse_iterator< const_iterator > | rend () const |
|
Mat_ | row (int y) const |
| 重载形式的 Mat::row() 等。
|
|
size_t | step1 (int i=0) const |
|
size_t | stepT (int i=0) const |
| 返回 step()/sizeof(_Tp)
|
|
int | type () const |
|
| Mat () CV_NOEXCEPT |
|
| Mat (const cuda::GpuMat &m) |
| 从GpuMat下载数据
|
|
| Mat (const Mat &m) |
|
| Mat (const Mat &m, const Range &rowRange, const Range &colRange=Range::all()) |
|
| Mat (const Mat &m, const Range *ranges) |
|
| Mat (const Mat &m, const Rect &roi) |
|
| Mat (const Mat &m, const std::vector< Range > &ranges) |
|
template<typename _Tp > |
| Mat (const MatCommaInitializer_< _Tp > &commaInitializer) |
|
template<typename _Tp , int m, int n> |
| Mat (const Matx< _Tp, m, n > &mtx, bool copyData=true) |
|
template<typename _Tp > |
| Mat (const Point3_< _Tp > &pt, bool copyData=true) |
|
template<typename _Tp > |
| Mat (const Point_< _Tp > &pt, bool copyData=true) |
|
template<typename _Tp , size_t _Nm> |
| Mat (const std::array< _Tp, _Nm > &arr, 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 > |
| Mat (const std::vector< _Tp > &vec, bool copyData=false) |
|
| Mat (const std::vector< int > &sizes, int type) |
|
| Mat (const std::vector< int > &sizes, int type, const Scalar &s) |
|
| Mat (const std::vector< int > &sizes, int type, void *data, const size_t *steps=0) |
|
template<typename _Tp , int n> |
| Mat (const Vec< _Tp, n > &vec, bool copyData=true) |
|
| Mat (int ndims, const int *sizes, int type) |
|
| Mat (int ndims, const int *sizes, int type, const Scalar &s) |
|
| Mat (int ndims, const int *sizes, int type, void *data, const size_t *steps=0) |
|
| Mat (int rows, int cols, int type) |
|
| Mat (int rows, int cols, int type, const Scalar &s) |
|
| Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP) |
|
| Mat (Mat &&m) CV_NOEXCEPT |
|
| Mat (Size size, int type) |
|
| Mat (Size size, int type, const Scalar &s) |
|
| Mat (Size size, int type, void *data, size_t step=AUTO_STEP) |
|
| ~Mat () |
| 析构函数 - 调用 release() (减少引用计数,并在需要时释放矩阵)
|
|
void | addref () |
| 增加引用计数。
|
|
Mat & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
| 调整子矩阵在其父矩阵中的大小和位置。
|
|
void | assignTo (Mat &m, int type=-1) const |
| 提供 convertTo 的函数形式。
|
|
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 (int i0, int i1, int i2) |
|
template<typename _Tp > |
const _Tp & | at (int i0, int i1, int i2) 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 (Point pt) |
|
template<typename _Tp > |
const _Tp & | at (Point pt) const |
|
template<typename _Tp > |
MatIterator_< _Tp > | begin () |
| 返回矩阵迭代器并将其设置为第一个矩阵元素。
|
|
template<typename _Tp > |
MatConstIterator_< _Tp > | begin () const |
|
int | channels () const |
| 返回矩阵通道数。
|
|
int | checkVector (int elemChannels, int depth=-1, bool requireContinuous=true) const |
|
CV_NODISCARD_STD Mat | clone () const |
| 创建数组和底层数据的完整副本。
|
|
Mat | col (int x) const |
| 为指定的矩阵列创建矩阵头。
|
|
Mat | colRange (const Range &r) const |
|
Mat | colRange (int startcol, int endcol) const |
| 为指定的列范围创建矩阵头。
|
|
void | convertTo (OutputArray m, int rtype, double alpha=1, double beta=0) const |
| 将数组转换为另一种数据类型,并可以选择缩放。
|
|
void | copySize (const Mat &m) |
| 内部使用函数;正确地重新分配 _size、_step 数组
|
|
void | copyTo (OutputArray m) const |
| 将矩阵复制到另一个矩阵。
|
|
void | copyTo (OutputArray m, InputArray mask) const |
|
void | create (const std::vector< int > &sizes, int type) |
|
void | create (int ndims, const int *sizes, int type) |
|
void | create (int rows, int cols, int type) |
| 根据需要分配新的数组数据。
|
|
void | create (Size size, int type) |
|
Mat | cross (InputArray m) const |
| 计算两个 3 元素向量的叉积。
|
|
void | deallocate () |
| 内部使用函数,建议使用 'release' 方法代替;释放矩阵数据
|
|
int | depth () const |
| 返回矩阵元素的深度。
|
|
Mat | diag (int d=0) const |
| 从矩阵中提取对角线。
|
|
double | dot (InputArray m) const |
| 计算两个向量的点积。
|
|
size_t | elemSize () const |
| 返回矩阵元素的大小(以字节为单位)。
|
|
size_t | elemSize1 () const |
| 返回每个矩阵元素通道的大小(以字节为单位)。
|
|
bool | empty () const |
| 如果数组没有元素,则返回 true。
|
|
template<typename _Tp > |
MatIterator_< _Tp > | end () |
| 返回矩阵迭代器并将其设置为最后一个矩阵元素之后。
|
|
template<typename _Tp > |
MatConstIterator_< _Tp > | end () const |
|
template<typename _Tp , typename Functor > |
void | forEach (const Functor &operation) |
| 并行运行给定的函数于所有矩阵元素上。
|
|
template<typename _Tp , typename Functor > |
void | forEach (const Functor &operation) const |
|
UMat | getUMat (AccessFlag accessFlags, UMatUsageFlags usageFlags=USAGE_DEFAULT) const |
| 从 Mat 中检索 UMat
|
|
MatExpr | inv (int method=DECOMP_LU) const |
| 矩阵求逆。
|
|
bool | isContinuous () const |
| 报告矩阵是否连续。
|
|
bool | isSubmatrix () const |
| 如果矩阵是另一个矩阵的子矩阵,则返回 true。
|
|
void | locateROI (Size &wholeSize, Point &ofs) const |
| 定位矩阵头在父矩阵中的位置。
|
|
MatExpr | mul (InputArray m, double scale=1) 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 |
|
template<typename _Tp > |
| operator std::vector< _Tp > () const |
|
template<typename _Tp , int n> |
| operator Vec< _Tp, n > () const |
|
Mat | operator() (const Range *ranges) const |
|
Mat | operator() (const Rect &roi) const |
|
Mat | operator() (const std::vector< Range > &ranges) const |
|
Mat | operator() (Range rowRange, Range colRange) const |
| 提取矩形子矩阵。
|
|
Mat & | operator= (const Mat &m) |
| 赋值运算符
|
|
Mat & | operator= (const MatExpr &expr) |
|
Mat & | operator= (const Scalar &s) |
| 将所有或部分数组元素设置为指定的值。
|
|
Mat & | operator= (Mat &&m) |
|
void | pop_back (size_t nelems=1) |
| 从矩阵底部移除元素。
|
|
uchar * | ptr (const int *idx) |
|
template<typename _Tp > |
_Tp * | ptr (const int *idx) |
|
const uchar * | ptr (const int *idx) const |
|
template<typename _Tp > |
const _Tp * | ptr (const int *idx) const |
|
template<int n> |
uchar * | ptr (const Vec< int, n > &idx) |
|
template<typename _Tp , int n> |
_Tp * | ptr (const Vec< int, n > &idx) |
|
template<int n> |
const uchar * | ptr (const Vec< int, n > &idx) const |
|
template<typename _Tp , int n> |
const _Tp * | ptr (const Vec< int, n > &idx) const |
|
uchar * | ptr (int i0, int i1, int i2) |
|
template<typename _Tp > |
_Tp * | ptr (int i0, int i1, int i2) |
|
const uchar * | ptr (int i0, int i1, int i2) const |
|
template<typename _Tp > |
const _Tp * | ptr (int i0, int i1, int i2) const |
|
uchar * | ptr (int i0=0) |
| 返回指向指定矩阵行的指针。
|
|
template<typename _Tp > |
_Tp * | ptr (int i0=0) |
|
const uchar * | ptr (int i0=0) const |
|
template<typename _Tp > |
const _Tp * | ptr (int i0=0) const |
|
uchar * | ptr (int row, int col) |
|
template<typename _Tp > |
_Tp * | ptr (int row, int col) |
|
const uchar * | ptr (int row, int col) const |
|
template<typename _Tp > |
const _Tp * | ptr (int row, int col) const |
|
template<typename _Tp > |
void | push_back (const _Tp &elem) |
| 向矩阵底部添加元素。
|
|
void | push_back (const Mat &m) |
|
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 void *elem) |
| 内部函数
|
|
template<typename _Tp > |
std::reverse_iterator< MatIterator_< _Tp > > | rbegin () |
| 与 begin() 相同,但用于逆向遍历。
|
|
template<typename _Tp > |
std::reverse_iterator< MatConstIterator_< _Tp > > | rbegin () const |
|
void | 释放 () |
| 递减引用计数器,并在需要时释放矩阵。
|
|
template<typename _Tp > |
std::reverse_iterator< MatIterator_< _Tp > > | rend () |
| 与 end() 相同,但用于逆向遍历。
|
|
template<typename _Tp > |
std::reverse_iterator< MatConstIterator_< _Tp > > | rend () const |
|
void | reserve (size_t sz) |
| 为特定数量的行预留空间。
|
|
void | reserveBuffer (size_t sz) |
| 为特定数量的字节预留空间。
|
|
Mat | reshape (int cn, const std::vector< int > &newshape) const |
|
Mat | reshape (int cn, int newndims, const int *newsz) const |
|
Mat | reshape (int cn, int rows=0) const |
| 更改二维矩阵的形状和/或通道数,无需复制数据。
|
|
void | resize (size_t sz) |
| 更改矩阵的行数。
|
|
void | resize (size_t sz, const Scalar &s) |
|
Mat | row (int y) const |
| 为指定的矩阵行创建一个矩阵头。
|
|
Mat | rowRange (const Range &r) const |
|
Mat | rowRange (int startrow, int endrow) const |
| 为指定的行范围创建一个矩阵头。
|
|
Mat & | setTo (InputArray value, InputArray mask=noArray()) |
| 将所有或部分数组元素设置为指定的值。
|
|
size_t | step1 (int i=0) const |
| 返回归一化的步长。
|
|
MatExpr | t () const |
| 转置矩阵。
|
|
size_t | total () const |
| 返回数组元素的总数。
|
|
size_t | total (int startDim, int endDim=INT_MAX) const |
| 返回数组元素的总数。
|
|
int | type () const |
| 返回矩阵元素的类型。
|
|
void | updateContinuityFlag () |
| 内部使用方法:更新连续性标志
|
|