Namespaces | |
namespace | cv::traits |
Classes | |
class | cv::Affine3< T > |
Affine transform. More... | |
class | cv::BufferPoolController |
class | cv::DualQuat< _Tp > |
class | cv::Quat< _Tp > |
class | cv::QuatEnum |
Typedefs | |
typedef Affine3< double > | cv::Affine3d |
typedef Affine3< float > | cv::Affine3f |
using | cv::DualQuatd = DualQuat< double > |
using | cv::DualQuatf = DualQuat< float > |
using | cv::Quatd = Quat< double > |
using | cv::Quatf = Quat< float > |
Enumerations | |
enum | cv::CovarFlags { cv::COVAR_SCRAMBLED = 0 , cv::COVAR_NORMAL = 1 , cv::COVAR_USE_AVG = 2 , cv::COVAR_SCALE = 4 , cv::COVAR_ROWS = 8 , cv::COVAR_COLS = 16 } |
Covariation flags. More... | |
enum | cv::QuatAssumeType { cv::QUAT_ASSUME_NOT_UNIT , cv::QUAT_ASSUME_UNIT } |
Unit quaternion flag. More... | |
Functions | |
template<typename T > | |
Quat< T > | cv::acos (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::acosh (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::asin (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::asinh (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::atan (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::atanh (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::cos (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::cosh (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::crossProduct (const Quat< T > &p, const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::exp (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::inv (const Quat< T > &q, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
template<typename T > | |
Quat< T > | cv::log (const Quat< T > &q, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
template<typename T , typename V > | |
static V | cv::operator* (const Affine3< T > &affine, const V &vector) |
V is a 3-element vector with member fields x, y and z. | |
template<typename T > | |
static Affine3< T > | cv::operator* (const Affine3< T > &affine1, const Affine3< T > &affine2) |
static Vec3d | cv::operator* (const Affine3d &affine, const Vec3d &vector) |
static Vec3f | cv::operator* (const Affine3f &affine, const Vec3f &vector) |
template<typename T > | |
Quat< T > | cv::operator* (const Quat< T > &, const T) |
template<typename T > | |
Quat< T > | cv::operator* (const T, const Quat< T > &) |
template<typename _Tp > | |
std::ostream & | cv::operator<< (std::ostream &, const DualQuat< _Tp > &) |
template<typename _Tp > | |
std::ostream & | cv::operator<< (std::ostream &, const Quat< _Tp > &) |
template<typename S > | |
std::ostream & | cv::operator<< (std::ostream &, const Quat< S > &) |
template<typename T > | |
Quat< T > | cv::power (const Quat< T > &q, const Quat< T > &p, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
template<typename T > | |
Quat< T > | cv::power (const Quat< T > &q, const T x, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
template<typename T > | |
Quat< T > | cv::sin (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::sinh (const Quat< T > &q) |
template<typename S > | |
Quat< S > | cv::sqrt (const Quat< S > &q, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
void | cv::swap (Mat &a, Mat &b) |
Swaps two matrices. | |
void | cv::swap (UMat &a, UMat &b) |
template<typename T > | |
Quat< T > | cv::tan (const Quat< T > &q) |
template<typename T > | |
Quat< T > | cv::tanh (const Quat< T > &q) |
Detailed Description
Typedef Documentation
◆ Affine3d
typedef Affine3<double> cv::Affine3d |
#include <opencv2/core/affine.hpp>
◆ Affine3f
typedef Affine3<float> cv::Affine3f |
#include <opencv2/core/affine.hpp>
◆ DualQuatd
using cv::DualQuatd = typedef DualQuat<double> |
#include <opencv2/core/dualquaternion.hpp>
◆ DualQuatf
using cv::DualQuatf = typedef DualQuat<float> |
#include <opencv2/core/dualquaternion.hpp>
◆ Quatd
#include <opencv2/core/quaternion.hpp>
◆ Quatf
#include <opencv2/core/quaternion.hpp>
Enumeration Type Documentation
◆ CovarFlags
enum cv::CovarFlags |
#include <opencv2/core.hpp>
Covariation flags.
Enumerator | |
---|---|
COVAR_SCRAMBLED | The output covariance matrix is calculated as: \[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...],\] The covariance matrix will be nsamples x nsamples. Such an unusual covariance matrix is used for fast PCA of a set of very large vectors (see, for example, the EigenFaces technique for face recognition). Eigenvalues of this "scrambled" matrix match the eigenvalues of the true covariance matrix. The "true" eigenvectors can be easily calculated from the eigenvectors of the "scrambled" covariance matrix. |
COVAR_NORMAL | The output covariance matrix is calculated as: \[\texttt{scale} \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...] \cdot [ \texttt{vects} [0]- \texttt{mean} , \texttt{vects} [1]- \texttt{mean} ,...]^T,\] covar will be a square matrix of the same size as the total number of elements in each input vector. One and only one of COVAR_SCRAMBLED and COVAR_NORMAL must be specified. |
COVAR_USE_AVG | If the flag is specified, the function does not calculate mean from the input vectors but, instead, uses the passed mean vector. This is useful if mean has been pre-calculated or known in advance, or if the covariance matrix is calculated by parts. In this case, mean is not a mean vector of the input sub-set of vectors but rather the mean vector of the whole set. |
COVAR_SCALE | If the flag is specified, the covariance matrix is scaled. In the "normal" mode, scale is 1./nsamples . In the "scrambled" mode, scale is the reciprocal of the total number of elements in each input vector. By default (if the flag is not specified), the covariance matrix is not scaled ( scale=1 ). |
COVAR_ROWS | If the flag is specified, all the input vectors are stored as rows of the samples matrix. mean should be a single-row vector in this case. |
COVAR_COLS | If the flag is specified, all the input vectors are stored as columns of the samples matrix. mean should be a single-column vector in this case. |
◆ QuatAssumeType
enum cv::QuatAssumeType |
#include <opencv2/core/quaternion.hpp>
Unit quaternion flag.
Function Documentation
◆ acos()
#include <opencv2/core/quaternion.hpp>
\[\arccos(q) = -\frac{\boldsymbol{v}}{||\boldsymbol{v}||}arccosh(q)\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ acosh()
#include <opencv2/core/quaternion.hpp>
\[arccosh(q) = \ln(q + \sqrt{q^2 - 1})\]
.
- Parameters
-
q a quaternion.
For example
◆ asin()
#include <opencv2/core/quaternion.hpp>
\[\arcsin(q) = -\frac{\boldsymbol{v}}{||\boldsymbol{v}||}arcsinh(q\frac{\boldsymbol{v}}{||\boldsymbol{v}||})\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ asinh()
#include <opencv2/core/quaternion.hpp>
\[arcsinh(q) = \ln(q + \sqrt{q^2 + 1})\]
.
- Parameters
-
q a quaternion.
For example
◆ atan()
#include <opencv2/core/quaternion.hpp>
\[\arctan(q) = -\frac{\boldsymbol{v}}{||\boldsymbol{v}||}arctanh(q\frac{\boldsymbol{v}}{||\boldsymbol{v}||})\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ atanh()
#include <opencv2/core/quaternion.hpp>
\[arctanh(q) = \frac{\ln(q + 1) - \ln(1 - q)}{2}\]
.
- Parameters
-
q a quaternion.
For example
◆ cos()
#include <opencv2/core/quaternion.hpp>
\[\cos(p) = \cos(w) * \cosh(||\boldsymbol{v}||) - \sin(w)\frac{\boldsymbol{v}}{||\boldsymbol{v}||}\sinh(||\boldsymbol{v}||)\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ cosh()
#include <opencv2/core/quaternion.hpp>
\[\cosh(p) = \cosh(w) * \cos(||\boldsymbol{v}||) + \sinh(w)\frac{\boldsymbol{v}}{||\boldsymbol{v}||}\sin(||\boldsymbol{v}||)\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ crossProduct()
#include <opencv2/core/quaternion.hpp>
\[p \times q = \frac{pq- qp}{2}\]
\[p \times q = \boldsymbol{u} \times \boldsymbol{v}\]
\[p \times q = (cz-dy)i + (dx-bz)j + (by-xc)k \]
For example
◆ exp()
#include <opencv2/core/quaternion.hpp>
\[\exp(q) = e^w (\cos||\boldsymbol{v}||+ \frac{v}{||\boldsymbol{v}||})\sin||\boldsymbol{v}||\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example:
◆ inv()
Quat< T > cv::inv | ( | const Quat< T > & | q, |
QuatAssumeType | assumeUnit = QUAT_ASSUME_NOT_UNIT |
||
) |
#include <opencv2/core/quaternion.hpp>
- Parameters
-
q a quaternion. assumeUnit if QUAT_ASSUME_UNIT, quaternion q assume to be a unit quaternion and this function will save some computations.
For example
◆ log()
Quat< T > cv::log | ( | const Quat< T > & | q, |
QuatAssumeType | assumeUnit = QUAT_ASSUME_NOT_UNIT |
||
) |
#include <opencv2/core/quaternion.hpp>
\[\ln(q) = \ln||q|| + \frac{\boldsymbol{v}}{||\boldsymbol{v}||}\arccos\frac{w}{||q||}.\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion. assumeUnit if QUAT_ASSUME_UNIT, q assume to be a unit quaternion and this function will save some computations.
For example
◆ operator*() [1/6]
|
static |
#include <opencv2/core/affine.hpp>
V is a 3-element vector with member fields x, y and z.
◆ operator*() [2/6]
|
static |
#include <opencv2/core/affine.hpp>
◆ operator*() [3/6]
#include <opencv2/core/affine.hpp>
◆ operator*() [4/6]
#include <opencv2/core/affine.hpp>
◆ operator*() [5/6]
#include <opencv2/core/quaternion.hpp>
◆ operator*() [6/6]
#include <opencv2/core/quaternion.hpp>
◆ operator<<() [1/3]
#include <opencv2/core/dualquaternion.hpp>
◆ operator<<() [2/3]
#include <opencv2/core/quaternion.hpp>
◆ operator<<() [3/3]
std::ostream & cv::operator<< | ( | std::ostream & | , |
const Quat< S > & | |||
) |
#include <opencv2/core/quaternion.hpp>
◆ power() [1/2]
Quat< T > cv::power | ( | const Quat< T > & | q, |
const Quat< T > & | p, | ||
QuatAssumeType | assumeUnit = QUAT_ASSUME_NOT_UNIT |
||
) |
#include <opencv2/core/quaternion.hpp>
\[p^q = e^{q\ln(p)}.\]
- Parameters
-
p base quaternion of power function. q index quaternion of power function. assumeUnit if QUAT_ASSUME_UNIT, quaternion \(p\) assume to be a unit quaternion and this function will save some computations.
For example
◆ power() [2/2]
Quat< T > cv::power | ( | const Quat< T > & | q, |
const T | x, | ||
QuatAssumeType | assumeUnit = QUAT_ASSUME_NOT_UNIT |
||
) |
#include <opencv2/core/quaternion.hpp>
\[q^x = ||q||(cos(x\theta) + \boldsymbol{u}sin(x\theta))).\]
- Parameters
-
q a quaternion. x index of exponentiation. assumeUnit if QUAT_ASSUME_UNIT, quaternion q assume to be a unit quaternion and this function will save some computations.
For example
- Note
- the type of the index should be the same as the quaternion.
◆ sin()
#include <opencv2/core/quaternion.hpp>
\[\sin(p) = \sin(w) * \cosh(||\boldsymbol{v}||) + \cos(w)\frac{\boldsymbol{v}}{||\boldsymbol{v}||}\sinh(||\boldsymbol{v}||)\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ sinh()
#include <opencv2/core/quaternion.hpp>
\[\sinh(p) = \sin(w)\cos(||\boldsymbol{v}||) + \cosh(w)\frac{v}{||\boldsymbol{v}||}\sin||\boldsymbol{v}||\]
where \(\boldsymbol{v} = [x, y, z].\)
- Parameters
-
q a quaternion.
For example
◆ sqrt()
Quat< S > cv::sqrt | ( | const Quat< S > & | q, |
QuatAssumeType | assumeUnit = QUAT_ASSUME_NOT_UNIT |
||
) |
#include <opencv2/core/quaternion.hpp>
◆ swap() [1/2]
#include <opencv2/core.hpp>
Swaps two matrices.
◆ swap() [2/2]
#include <opencv2/core.hpp>
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
◆ tan()
#include <opencv2/core/quaternion.hpp>
\[\tan(q) = \frac{\sin(q)}{\cos(q)}.\]
- Parameters
-
q a quaternion.
For example