| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
cv::Matx< _Tp, m, n > Class Template Reference
Core functionality » Basic structures

Template class for small matrices whose type and size are known at compilation time. More...

`#include <opencv2/core/matx.hpp>`

Collaboration diagram for cv::Matx< _Tp, m, n >:

## Public Types
enum | { rows = m , cols = n , channels = rows*cols , shortdim = (m < n ? m : n) }
typedef Matx< _Tp, shortdim, 1 > | diag_type
typedef Matx< _Tp, m, n > | mat_type
typedef _Tp | value_type

## Public Member Functions
| Matx ()
| default constructor
| Matx (_Tp v0)
| 1x1 matrix
| Matx (_Tp v0, _Tp v1)
| 1x2 or 2x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2)
| 1x3 or 3x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3)
| 1x4, 2x2 or 4x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4)
| 1x5 or 5x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5)
| 1x6, 2x3, 3x2 or 6x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6)
| 1x7 or 7x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7)
| 1x8, 2x4, 4x2 or 8x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8)
| 1x9, 3x3 or 9x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9)
| 1x10, 2x5 or 5x2 or 10x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11)
| 1x12, 2x6, 3x4, 4x3, 6x2 or 12x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11, _Tp v12, _Tp v13)
| 1x14, 2x7, 7x2 or 14x1 matrix
| Matx (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8, _Tp v9, _Tp v10, _Tp v11, _Tp v12, _Tp v13, _Tp v14, _Tp v15)
| 1x16, 4x4 or 16x1 matrix
| Matx (const _Tp *vals)
| initialize from a plain array
template<int l>
| Matx (const Matx< _Tp, m, l > &a, const Matx< _Tp, l, n > &b, Matx_MatMulOp)
template<typename _T2 >
| Matx (const Matx< _Tp, m, n > &a, _T2 alpha, Matx_ScaleOp)
| Matx (const Matx< _Tp, m, n > &a, const Matx< _Tp, m, n > &b, Matx_AddOp)
| Matx (const Matx< _Tp, m, n > &a, const Matx< _Tp, m, n > &b, Matx_DivOp)
| Matx (const Matx< _Tp, m, n > &a, const Matx< _Tp, m, n > &b, Matx_MulOp)
| Matx (const Matx< _Tp, m, n > &a, const Matx< _Tp, m, n > &b, Matx_SubOp)
| Matx (const Matx< _Tp, n, m > &a, Matx_TOp)
| Matx (std::initializer_list< _Tp >)
| initialize from an initializer list
Matx< _Tp, m, 1 > | col (int i) const
| extract the matrix column
void | convertTo (const _OutputArray &dst, int type, double scale=1., double shift=0.) const
void | copyTo (const _OutputArray &dst) const
| copy & convert
double | ddot (const Matx< _Tp, m, n > &v) const
| dot product computed in double-precision arithmetics
diag_type | diag () const
| extract the matrix diagonal
Matx< _Tp, m, n > | div (const Matx< _Tp, m, n > &a) const
| divide two matrices element-wise
_Tp | dot (const Matx< _Tp, m, n > &v) const
| dot product computed with the default precision
template<int m1, int n1>
Matx< _Tp, m1, n1 > | get_minor (int base_row, int base_col) const
| extract part of the matrix
Matx< _Tp, n, m > | inv (int method=DECOMP_LU, bool *p_is_ok=NULL) const
| invert the matrix
Matx< _Tp, m, n > | mul (const Matx< _Tp, m, n > &a) const
| multiply two matrices element-wise
template<typename T2 >
| operator Matx< T2, m, n > () const
| conversion to another data type
_Tp & | operator() (int i)
const _Tp & | operator() (int i) const
| 1D element access
_Tp & | operator() (int row, int col)
const _Tp & | operator() (int row, int col) const
| element access
template<int m1, int n1>
Matx< _Tp, m1, n1 > | reshape () const
| change the matrix shape
Matx< _Tp, 1, n > | row (int i) const
| extract the matrix row
template<int l>
Matx< _Tp, n, l > | solve (const Matx< _Tp, m, l > &rhs, int flags=DECOMP_LU) const
| solve linear system
Vec< _Tp, n > | solve (const Vec< _Tp, m > &rhs, int method) const
Matx< _Tp, n, m > | t () const
| transpose the matrix

## Static Public Member Functions
static CV_NODISCARD_STD Matx | all (_Tp alpha)
static CV_NODISCARD_STD Matx | diag (const diag_type &d)
static CV_NODISCARD_STD Matx | eye ()
static CV_NODISCARD_STD Matx | ones ()
static CV_NODISCARD_STD Matx | randn (_Tp a, _Tp b)
| Generates normally distributed random numbers.
static CV_NODISCARD_STD Matx | randu (_Tp a, _Tp b)
| Generates uniformly distributed random numbers.
static CV_NODISCARD_STD Matx | zeros ()

## Public Attributes
_Tp | val [m *n]
| matrix elements

## Detailed Description

template<typename _Tp, int m, int n>
class cv::Matx< _Tp, m, n >

Template class for small matrices whose type and size are known at compilation time.

If you need a more flexible type, use Mat . The elements of the matrix M are accessible using the M(i,j) notation. Most of the common matrix operations (see also MatrixExpressions ) are available. To do an operation on Matx that is not implemented, you can easily convert the matrix to Mat and backwards:

Matx33f m(1, 2, 3,
4, 5, 6,
7, 8, 9);
cout << sum(Mat(m*m.t())) << endl;
cv::Mat
n-dimensional dense array class
Definition mat.hpp:951
cv::Matx< float, 3, 3 >
cv::sum
Scalar sum(InputArray src)
Calculates the sum of array elements.

Except of the plain constructor which takes a list of elements, Matx can be initialized from a C-array:

float values[] = { 1, 2, 3};
Matx31f m(values);

In case if C++11 features are available, std::initializer_list can be also used to initialize Matx:

Matx31f m = { 1, 2, 3};

## Member Typedef Documentation

## ◆ diag_type

template<typename _Tp , int m, int n>

Matx<_Tp, shortdim, 1> cv::Matx< _Tp, m, n >::diag_type

## ◆ mat_type

template<typename _Tp , int m, int n>

Matx<_Tp, m, n> cv::Matx< _Tp, m, n >::mat_type

## ◆ value_type

template<typename _Tp , int m, int n>

_Tp cv::Matx< _Tp, m, n >::value_type

## Member Enumeration Documentation

## ◆ anonymous enum

template<typename _Tp , int m, int n>

anonymous enum

Enumerator
rows |
cols |
channels |
shortdim |

## Constructor & Destructor Documentation

## ◆ Matx() [1/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( |  | ) |

default constructor

## ◆ Matx() [2/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0 | ) |
| explicit

1x1 matrix

## ◆ Matx() [3/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1 )

1x2 or 2x1 matrix

## ◆ Matx() [4/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2 )

1x3 or 3x1 matrix

## ◆ Matx() [5/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3 )

1x4, 2x2 or 4x1 matrix

## ◆ Matx() [6/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4 )

1x5 or 5x1 matrix

## ◆ Matx() [7/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5 )

1x6, 2x3, 3x2 or 6x1 matrix

## ◆ Matx() [8/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6 )

1x7 or 7x1 matrix

## ◆ Matx() [9/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7 )

1x8, 2x4, 4x2 or 8x1 matrix

## ◆ Matx() [10/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8 )

1x9, 3x3 or 9x1 matrix

## ◆ Matx() [11/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8,
|  | _Tp | v9 )

1x10, 2x5 or 5x2 or 10x1 matrix

## ◆ Matx() [12/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8,
|  | _Tp | v9,
|  | _Tp | v10,
|  | _Tp | v11 )

1x12, 2x6, 3x4, 4x3, 6x2 or 12x1 matrix

## ◆ Matx() [13/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8,
|  | _Tp | v9,
|  | _Tp | v10,
|  | _Tp | v11,
|  | _Tp | v12,
|  | _Tp | v13 )

1x14, 2x7, 7x2 or 14x1 matrix

## ◆ Matx() [14/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8,
|  | _Tp | v9,
|  | _Tp | v10,
|  | _Tp | v11,
|  | _Tp | v12,
|  | _Tp | v13,
|  | _Tp | v14,
|  | _Tp | v15 )

1x16, 4x4 or 16x1 matrix

## ◆ Matx() [15/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | const _Tp * | vals | ) |
| explicit

initialize from a plain array

## ◆ Matx() [16/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | std::initializer_list< _Tp > |  | ) |

initialize from an initializer list

## ◆ Matx() [17/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, m, n > & | a,
|  | const Matx< _Tp, m, n > & | b,
|  | Matx_AddOp | )

## ◆ Matx() [18/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, m, n > & | a,
|  | const Matx< _Tp, m, n > & | b,
|  | Matx_SubOp | )

## ◆ Matx() [19/23]

template<typename _Tp , int m, int n>
template<typename _T2 >

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, m, n > & | a,
|  | _T2 | alpha,
|  | Matx_ScaleOp | )

## ◆ Matx() [20/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, m, n > & | a,
|  | const Matx< _Tp, m, n > & | b,
|  | Matx_MulOp | )

## ◆ Matx() [21/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, m, n > & | a,
|  | const Matx< _Tp, m, n > & | b,
|  | Matx_DivOp | )

## ◆ Matx() [22/23]

template<typename _Tp , int m, int n>
template<int l>

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, m, l > & | a,
|  | const Matx< _Tp, l, n > & | b,
|  | Matx_MatMulOp | )

## ◆ Matx() [23/23]

template<typename _Tp , int m, int n>

cv::Matx< _Tp, m, n >::Matx | ( | const Matx< _Tp, n, m > & | a,
|  | Matx_TOp | )

## Member Function Documentation

## ◆ all()

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::all | ( | _Tp | alpha | ) |
| static

## ◆ col()

template<typename _Tp , int m, int n>

Matx< _Tp, m, 1 > cv::Matx< _Tp, m, n >::col | ( | int | i | ) | const

extract the matrix column

## ◆ convertTo()

template<typename _Tp , int m, int n>

void cv::Matx< _Tp, m, n >::convertTo | ( | const _OutputArray & | dst,
|  | int | type,
|  | double | scale = 1.,
|  | double | shift = 0. ) const

## ◆ copyTo()

template<typename _Tp , int m, int n>

void cv::Matx< _Tp, m, n >::copyTo | ( | const _OutputArray & | dst | ) | const

copy & convert

## ◆ ddot()

template<typename _Tp , int m, int n>

double cv::Matx< _Tp, m, n >::ddot | ( | const Matx< _Tp, m, n > & | v | ) | const

dot product computed in double-precision arithmetics

## ◆ diag() [1/2]

template<typename _Tp , int m, int n>

diag_type cv::Matx< _Tp, m, n >::diag | ( |  | ) | const

extract the matrix diagonal

## ◆ diag() [2/2]

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::diag | ( | const diag_type & | d | ) |
| static

## ◆ div()

template<typename _Tp , int m, int n>

Matx< _Tp, m, n > cv::Matx< _Tp, m, n >::div | ( | const Matx< _Tp, m, n > & | a | ) | const

divide two matrices element-wise

## ◆ dot()

template<typename _Tp , int m, int n>

_Tp cv::Matx< _Tp, m, n >::dot | ( | const Matx< _Tp, m, n > & | v | ) | const

dot product computed with the default precision

## ◆ eye()

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::eye | ( |  | ) |
| static

## ◆ get_minor()

template<typename _Tp , int m, int n>
template<int m1, int n1>

Matx< _Tp, m1, n1 > cv::Matx< _Tp, m, n >::get_minor | ( | int | base_row,
|  | int | base_col ) const

extract part of the matrix

## ◆ inv()

template<typename _Tp , int m, int n>

Matx< _Tp, n, m > cv::Matx< _Tp, m, n >::inv | ( | int | method = DECOMP_LU,
|  | bool * | p_is_ok = NULL ) const

invert the matrix

## ◆ mul()

template<typename _Tp , int m, int n>

Matx< _Tp, m, n > cv::Matx< _Tp, m, n >::mul | ( | const Matx< _Tp, m, n > & | a | ) | const

multiply two matrices element-wise

## ◆ ones()

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::ones | ( |  | ) |
| static

## ◆ operator Matx< T2, m, n >()

template<typename _Tp , int m, int n>
template<typename T2 >

cv::Matx< _Tp, m, n >::operator Matx< T2, m, n > | ( |  | ) | const

conversion to another data type

## ◆ operator()() [1/4]

template<typename _Tp , int m, int n>

_Tp & cv::Matx< _Tp, m, n >::operator() | ( | int | i | ) |

## ◆ operator()() [2/4]

template<typename _Tp , int m, int n>

const _Tp & cv::Matx< _Tp, m, n >::operator() | ( | int | i | ) | const

1D element access

## ◆ operator()() [3/4]

template<typename _Tp , int m, int n>

_Tp & cv::Matx< _Tp, m, n >::operator() | ( | int | row,
|  | int | col )

## ◆ operator()() [4/4]

template<typename _Tp , int m, int n>

const _Tp & cv::Matx< _Tp, m, n >::operator() | ( | int | row,
|  | int | col ) const

element access

## ◆ randn()

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::randn | ( | _Tp | a,
|  | _Tp | b )
| static

Generates normally distributed random numbers.

Parameters

  a | Mean value.
  b | Standard deviation.

## ◆ randu()

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::randu | ( | _Tp | a,
|  | _Tp | b )
| static

Generates uniformly distributed random numbers.

Parameters

  a | Range boundary.
  b | The other range boundary (boundaries don't have to be ordered, the lower boundary is inclusive, the upper one is exclusive).

## ◆ reshape()

template<typename _Tp , int m, int n>
template<int m1, int n1>

Matx< _Tp, m1, n1 > cv::Matx< _Tp, m, n >::reshape | ( |  | ) | const

change the matrix shape

## ◆ row()

template<typename _Tp , int m, int n>

Matx< _Tp, 1, n > cv::Matx< _Tp, m, n >::row | ( | int | i | ) | const

extract the matrix row

## ◆ solve() [1/2]

template<typename _Tp , int m, int n>
template<int l>

Matx< _Tp, n, l > cv::Matx< _Tp, m, n >::solve | ( | const Matx< _Tp, m, l > & | rhs,
|  | int | flags = DECOMP_LU ) const

solve linear system

## ◆ solve() [2/2]

template<typename _Tp , int m, int n>

Vec< _Tp, n > cv::Matx< _Tp, m, n >::solve | ( | const Vec< _Tp, m > & | rhs,
|  | int | method ) const

## ◆ t()

template<typename _Tp , int m, int n>

Matx< _Tp, n, m > cv::Matx< _Tp, m, n >::t | ( |  | ) | const

transpose the matrix

## ◆ zeros()

template<typename _Tp , int m, int n>

static CV_NODISCARD_STD Matx cv::Matx< _Tp, m, n >::zeros | ( |  | ) |
| static

## Member Data Documentation

## ◆ val

template<typename _Tp , int m, int n>

_Tp cv::Matx< _Tp, m, n >::val[m *n]

matrix elements

The documentation for this class was generated from the following file:

- opencv2/core/matx.hpp