# cv::Vec< _Tp, cn > Class Template Reference

`#include <core.hpp>`

Inheritance diagram for cv::Vec< _Tp, cn >:

List of all members.

## Public Types

enum | { depth = DataDepth<_Tp>::value, channels = cn, type = CV_MAKETYPE(depth, channels) }
typedef _Tp | value_type

## Public Member Functions

Vec | cross (const Vec &v) const
template<>
Vec< float, 3 > | cross (const Vec< float, 3 > &v) const
template<>
Vec< double, 3 > | cross (const Vec< double, 3 > &v) const
Vec | mul (const Vec< _Tp, cn > &v) const
| per-element multiplication
| operator CvScalar () const
| conversion to 4-element CvScalar.
template<typename T2 >
| operator Vec< T2, cn > () const
| convertion to another data type
_Tp & | operator() (int i)
const _Tp & | operator() (int i) const
| 1D element access
const _Tp & | operator[] (int i) const
_Tp & | operator[] (int i)
| Vec (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5)
| 6-element vector constructor
| Vec (const Vec< _Tp, cn > &v)
| Vec (const _Tp *values)
| Vec (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7, _Tp v8)
| 9-element vector constructor
| 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 (_Tp v0, _Tp v1, _Tp v2)
| 3-element vector constructor
| Vec (_Tp v0)
| 1-element vector constructor
| Vec ()
| default constructor
| Vec (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4)
| 5-element vector constructor
| Vec (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6, _Tp v7)
| 8-element vector constructor
| Vec (_Tp v0, _Tp v1, _Tp v2, _Tp v3, _Tp v4, _Tp v5, _Tp v6)
| 7-element vector constructor
| Vec (_Tp v0, _Tp v1, _Tp v2, _Tp v3)
| 4-element vector constructor
| Vec (_Tp v0, _Tp v1)
| 2-element vector constructor

## Static Public Member Functions

static Vec | all (_Tp alpha)

## Detailed Description

### template<typename _Tp, int cn>
class cv::Vec< _Tp, cn >

A short numerical vector.

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:

1. _Tp element type
2. cn the number of elements

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>.

## Member Typedef Documentation

template<typename _Tp, int cn>

typedef _Tp cv::Vec< _Tp, cn >::value_type

Reimplemented from cv::Matx< _Tp, cn, 1 >.

## Member Enumeration Documentation

template<typename _Tp, int cn>

anonymous enum

Enumerator:

  depth |
  channels |
  type |

## Constructor & Destructor Documentation

template<typename _Tp , int cn>

cv::Vec< _Tp, cn >::Vec | ( | ) | `[inline]`

default constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0 ) | `[inline]`

1-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1
| ) |  | `[inline]`

2-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2
| ) |  | `[inline]`

3-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3
| ) |  | `[inline]`

4-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4
| ) |  | `[inline]`

5-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5
| ) |  | `[inline]`

6-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6
| ) |  | `[inline]`

7-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7
| ) |  | `[inline]`

8-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8
| ) |  | `[inline]`

9-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | _Tp | v0,
|  | _Tp | v1,
|  | _Tp | v2,
|  | _Tp | v3,
|  | _Tp | v4,
|  | _Tp | v5,
|  | _Tp | v6,
|  | _Tp | v7,
|  | _Tp | v8,
|  | _Tp | v9
| ) |  | `[inline]`

10-element vector constructor

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | const _Tp * | values ) | `[inline, explicit]`

template<typename _Tp, int cn>

cv::Vec< _Tp, cn >::Vec | ( | const Vec< _Tp, cn > & | v ) | `[inline]`

## Member Function Documentation

template<typename _Tp, int cn>

Vec< _Tp, cn > cv::Vec< _Tp, cn >::all | ( | _Tp | alpha ) | `[inline, static]`

Reimplemented from cv::Matx< _Tp, cn, 1 >.

Reimplemented in cv::Scalar_< _Tp >, and cv::Scalar_< double >.

template<>

Vec< float, 3 > cv::Vec< float, 3 >::cross | ( | const Vec< float, 3 > & | v ) | const`[inline]`

template<>

Vec< double, 3 > cv::Vec< double, 3 >::cross | ( | const Vec< double, 3 > & | v ) | const`[inline]`

template<typename _Tp , int cn>

Vec< _Tp, cn > cv::Vec< _Tp, cn >::cross | ( | const Vec< _Tp, cn > & | v ) | const`[inline]`

cross product of the two 3D vectors.

For other dimensionalities the exception is raised

template<typename _Tp, int cn>

Vec< _Tp, cn > cv::Vec< _Tp, cn >::mul | ( | const Vec< _Tp, cn > & | v ) | const`[inline]`

per-element multiplication

template<typename _Tp , int cn>

cv::Vec< _Tp, cn >::operator CvScalar | ( | ) | const`[inline]`

conversion to 4-element CvScalar.

Reimplemented in cv::Scalar_< _Tp >, and cv::Scalar_< double >.

template<typename _Tp , int cn>
template<typename T2 >

cv::Vec< _Tp, cn >::operator Vec< T2, cn > | ( | ) | const`[inline]`

convertion to another data type

template<typename _Tp , int cn>

const _Tp & cv::Vec< _Tp, cn >::operator() | ( | int | i ) | const`[inline]`

1D element access

Reimplemented from cv::Matx< _Tp, cn, 1 >.

template<typename _Tp , int cn>

_Tp & cv::Vec< _Tp, cn >::operator() | ( | int | i ) | `[inline]`

Reimplemented from cv::Matx< _Tp, cn, 1 >.

template<typename _Tp , int cn>

_Tp & cv::Vec< _Tp, cn >::operator[] | ( | int | i ) | `[inline]`

template<typename _Tp , int cn>

const _Tp & cv::Vec< _Tp, cn >::operator[] | ( | int | i ) | const`[inline]`

element access

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

- /usr/ports/pobj/OpenCV-2.2.0/OpenCV-2.2.0/modules/core/include/opencv2/core/core.hpp
- /usr/ports/pobj/OpenCV-2.2.0/OpenCV-2.2.0/modules/core/include/opencv2/core/operations.hpp

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines