Class cv::Vec#

Template class for short numerical vectors, a partial case of Matx. View details

Collaboration diagram for cv::Vec:

Public Types#

enum cv::Vec {
    cv::channels = cn,
    cv::_dummy_enum_finalizer = 0
}
Public Types inherited from cv::Matx

Return

Name

Description

``

Matx< _Tp, shortdim, 1 >

diag_type

Matx< _Tp, m, n >

mat_type

_Tp

value_type

Public Member Functions#

Public Member Functions inherited from cv::Matx

Return

Name

Description

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

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

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)

extract the matrix column

void

convertTo(
    const _OutputArray & dst,
    int type,
    double scale = 1.,
    double shift = 0. )

void

copyTo(const _OutputArray & dst)

copy & convert

double

ddot(const Matx< _Tp, m, n > & v)

dot product computed in double-precision arithmetics

diag_type

diag()

extract the matrix diagonal

Matx< _Tp, m, n >

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

divide two matrices element-wise

_Tp

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

dot product computed with the default precision

Matx< _Tp, m1, n1 >

get_minor(
    int base_row,
    int base_col )

extract part of the matrix

Matx< _Tp, n, m >

inv(
    int method = DECOMP_LU,
    bool * p_is_ok = NULL )

invert the matrix

Matx< _Tp, m, n >

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

multiply two matrices element-wise

operator Matx< T2, m, n >()

conversion to another data type

_Tp &

operator()(int i)

const _Tp &

operator()(int i)

1D element access

_Tp &

operator()(
    int row,
    int col )

const _Tp &

operator()(
    int row,
    int col )

element access

Matx< _Tp, m1, n1 >

reshape()

change the matrix shape

Matx< _Tp, 1, n >

row(int i)

extract the matrix row

Matx< _Tp, n, l >

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

solve linear system

Matx< _Tp, n, m >

t()

transpose the matrix

Static Public Member Functions#

Static Public Member Functions inherited from cv::Matx

Return

Name

Description

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#

Public Attributes inherited from cv::Matx

Return

Name

Description

_Tp

val[m *n]

matrix elements

Detailed Description#

Template class for short numerical vectors, a partial case of Matx.

This template class represents short numerical vectors (of 1, 2, 3, 4 … elements) on which you can perform basic arithmetical operations, access individual elements using [] operator etc. The vectors are allocated on stack, as opposite to std::valarray, std::vector, cv::Mat etc., which elements are dynamically allocated in the heap.

The template takes 2 parameters:

In addition to the universal notation like

Vec<float, 3>, you can use shorter aliases for the most popular specialized variants of Vec, e.g. Vec3f ~ Vec<float, 3>.

It is possible to convert Vec<T,2> to/from Point_, Vec<T,3> to/from Point3_ , and Vec<T,4> to CvScalar or Scalar_. Use operator[] to access the elements of Vec.

All the expected vector operations are also implemented:

  • v1 = v2 + v3

  • v1 = v2 - v3

  • v1 = v2 * scale

  • v1 = scale * v2

  • v1 = -v2

  • v1 += v2 and other augmenting operations

  • v1 == v2, v1 != v2

  • norm(v1) (euclidean norm) The Vec class is commonly used to describe pixel types of multi-channel arrays. See Mat for details.

Template Parameters:
  • _Tp – element type

  • cn – the number of elements

Member Typedef Documentation#

value_type#

typedef _Tp cv::Vec::value_type

Member Enumeration Documentation#

enum Vec

channels

_dummy_enum_finalizer

Constructor & Destructor Documentation#

Vec()#

cv::Vec::Vec()

default constructor

Vec()#

cv::Vec::Vec(_Tp v0)

1-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1 )

2-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2 )

3-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3 )

4-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3,
_Tp v4 )

5-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3,
_Tp v4,
_Tp v5 )

6-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3,
_Tp v4,
_Tp v5,
_Tp v6 )

7-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3,
_Tp v4,
_Tp v5,
_Tp v6,
_Tp v7 )

8-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3,
_Tp v4,
_Tp v5,
_Tp v6,
_Tp v7,
_Tp v8 )

9-element vector constructor

Vec()#

cv::Vec::Vec(
_Tp v0,
_Tp v1,
_Tp v2,
_Tp v3,
_Tp v4,
_Tp v5,
_Tp v6,
_Tp v7,
_Tp v8,
_Tp v9 )

10-element vector constructor

Vec()#

cv::Vec::Vec(
_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 )

14-element vector constructor

Vec()#

cv::Vec::Vec(const _Tp * values)

Vec()#

template<typename _T2>
cv::Vec::Vec(
const Matx< _Tp, cn, 1 > & a,
_T2 alpha,
Matx_ScaleOp )

Vec()#

cv::Vec::Vec(
const Matx< _Tp, cn, 1 > & a,
const Matx< _Tp, cn, 1 > & b,
Matx_AddOp )

Vec()#

cv::Vec::Vec(
const Matx< _Tp, cn, 1 > & a,
const Matx< _Tp, cn, 1 > & b,
Matx_SubOp )

Vec()#

cv::Vec::Vec(const Vec< _Tp, cn > & v)

Vec()#

cv::Vec::Vec(std::initializer_list< _Tp >)

Member Function Documentation#

conj()#

Vec cv::Vec::conj()

conjugation (makes sense for complex numbers and quaternions)

cross()#

Vec cv::Vec::cross(const Vec & v)

cross product of the two 3D vectors.

For other dimensionalities the exception is raised

mul()#

Vec cv::Vec::mul(const Vec< _Tp, cn > & v)

per-element multiplication

operator Vec< T2, cn >()#

template<typename T2>
cv::Vec::operator Vec< T2, cn >()

conversion to another data type

operator()()#

_Tp & cv::Vec::operator()(int i)

operator()()#

const _Tp & cv::Vec::operator()(int i)

operator=()#

Vec< _Tp, cn > & cv::Vec::operator=(const Vec< _Tp, cn > & rhs)

operator#

_Tp & cv::Vec::operator[](int i)

operator#

const _Tp & cv::Vec::operator[](int i)

element access

all()#

static Vec cv::Vec::all(_Tp alpha)

diag()#

static Vec cv::Vec::diag(_Tp alpha)

eye()#

static Vec cv::Vec::eye()

ones()#

static Vec cv::Vec::ones()

randn()#

static Vec cv::Vec::randn(
_Tp a,
_Tp b )

randu()#

static Vec cv::Vec::randu(
_Tp a,
_Tp b )

zeros()#

static Vec cv::Vec::zeros()

Source file#

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