cv::SVD Class Reference

#include <core.hpp>

List of all members.

Public Types

enum  { MODIFY_A = 1, NO_UV = 2, FULL_UV = 4 }

Public Member Functions

void backSubst (const Mat &rhs, CV_OUT Mat &dst) const
 performs back substitution, so that dst is the solution or pseudo-solution of m*dst = rhs, where m is the decomposed matrix
SVDoperator() (const Mat &src, int flags=0)
 the operator that performs SVD. The previously allocated SVD::u, SVD::w are SVD::vt are released.
 SVD (const Mat &src, int flags=0)
 the constructor that performs SVD
 SVD ()
 the default constructor

Static Public Member Functions

template<typename _Tp , int m, int n, int nm, int nb>
static void backSubst (const Matx< _Tp, nm, 1 > &w, const Matx< _Tp, m, nm > &u, const Matx< _Tp, n, nm > &vt, const Matx< _Tp, m, nb > &rhs, Matx< _Tp, n, nb > &dst)
static void backSubst (const Mat &w, const Mat &u, const Mat &vt, const Mat &rhs, CV_OUT Mat &dst)
 performs back substitution
template<typename _Tp , int m, int n, int nm>
static void compute (const Matx< _Tp, m, n > &a, Matx< _Tp, nm, 1 > &w)
template<typename _Tp , int m, int n, int nm>
static void compute (const Matx< _Tp, m, n > &a, Matx< _Tp, nm, 1 > &w, Matx< _Tp, m, nm > &u, Matx< _Tp, n, nm > &vt)
static void compute (const Mat &src, CV_OUT Mat &w, int flags=0)
 computes singular values of a matrix
static void compute (const Mat &src, CV_OUT Mat &w, CV_OUT Mat &u, CV_OUT Mat &vt, int flags=0)
 decomposes matrix and stores the results to user-provided matrices
static void solveZ (const Mat &src, CV_OUT Mat &dst)
 finds dst = arg min_{|dst|=1} |m*dst|

Public Attributes

Mat u
Mat vt
Mat w

Detailed Description

Singular Value Decomposition class

The class is used to compute Singular Value Decomposition of a floating-point matrix and then use it to solve least-square problems, under-determined linear systems, invert matrices, compute condition numbers etc.

For a bit faster operation you can pass flags=SVDMODIFY_A|... to modify the decomposed matrix when it is not necessarily to preserve it. If you want to compute condition number of a matrix or absolute value of its determinant - you do not need SVD::u or SVD::vt, so you can pass flags=SVDNO_UV|... . Another flag SVD::FULL_UV indicates that the full-size SVD::u and SVD::vt must be computed, which is not necessary most of the time.


Member Enumeration Documentation

anonymous enum
Enumerator:
MODIFY_A 
NO_UV 
FULL_UV 

Constructor & Destructor Documentation

cv::SVD::SVD (  )  [inline]

the default constructor

cv::SVD::SVD ( const Mat src,
int  flags = 0 
) [inline]

the constructor that performs SVD


Member Function Documentation

void cv::SVD::backSubst ( const Mat rhs,
CV_OUT Mat dst 
) const

performs back substitution, so that dst is the solution or pseudo-solution of m*dst = rhs, where m is the decomposed matrix

template<typename _Tp , int m, int n, int nm, int nb>
void cv::SVD::backSubst ( const Matx< _Tp, nm, 1 > &  w,
const Matx< _Tp, m, nm > &  u,
const Matx< _Tp, n, nm > &  vt,
const Matx< _Tp, m, nb > &  rhs,
Matx< _Tp, n, nb > &  dst 
) [inline, static]
static void cv::SVD::backSubst ( const Mat w,
const Mat u,
const Mat vt,
const Mat rhs,
CV_OUT Mat dst 
) [static]

performs back substitution

template<typename _Tp , int m, int n, int nm>
void cv::SVD::compute ( const Matx< _Tp, m, n > &  a,
Matx< _Tp, nm, 1 > &  w 
) [inline, static]
template<typename _Tp , int m, int n, int nm>
void cv::SVD::compute ( const Matx< _Tp, m, n > &  a,
Matx< _Tp, nm, 1 > &  w,
Matx< _Tp, m, nm > &  u,
Matx< _Tp, n, nm > &  vt 
) [inline, static]
static void cv::SVD::compute ( const Mat src,
CV_OUT Mat w,
int  flags = 0 
) [static]

computes singular values of a matrix

static void cv::SVD::compute ( const Mat src,
CV_OUT Mat w,
CV_OUT Mat u,
CV_OUT Mat vt,
int  flags = 0 
) [static]

decomposes matrix and stores the results to user-provided matrices

SVD& cv::SVD::operator() ( const Mat src,
int  flags = 0 
)

the operator that performs SVD. The previously allocated SVD::u, SVD::w are SVD::vt are released.

static void cv::SVD::solveZ ( const Mat src,
CV_OUT Mat dst 
) [static]

finds dst = arg min_{|dst|=1} |m*dst|


Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Thu Dec 23 11:40:55 2010 for opencv by  doxygen 1.6.3