Struct opencv::core::SVD

source ·
pub struct SVD { /* private fields */ }
Expand description

Singular Value Decomposition

Class for computing Singular Value Decomposition of a floating-point matrix. The Singular Value Decomposition is used to solve least-square problems, under-determined linear systems, invert matrices, compute condition numbers, and so on.

If you want to compute a condition number of a matrix or an absolute value of its determinant, you do not need u and vt. You can pass flags=SVD::NO_UV|… . Another flag SVD::FULL_UV indicates that full-size u and vt must be computed, which is not necessary most of the time.

See also

invert, solve, eigen, determinant

Implementations§

source§

impl SVD

source

pub fn default() -> Result<SVD>

the default constructor

initializes an empty SVD structure

source

pub fn new(src: &dyn ToInputArray, flags: i32) -> Result<SVD>

the default constructor

initializes an empty SVD structure

Overloaded parameters

initializes an empty SVD structure and then calls SVD::operator()

Parameters
  • src: decomposed matrix. The depth has to be CV_32F or CV_64F.
  • flags: operation flags (SVD::Flags)
C++ default parameters
  • flags: 0
source

pub fn compute_ext( src: &dyn ToInputArray, w: &mut dyn ToOutputArray, u: &mut dyn ToOutputArray, vt: &mut dyn ToOutputArray, flags: i32 ) -> Result<()>

decomposes matrix and stores the results to user-provided matrices

The methods/functions perform SVD of matrix. Unlike SVD::SVD constructor and SVD::operator(), they store the results to the user-provided matrices:

Mat A, w, u, vt;
SVD::compute(A, w, u, vt);
Parameters
  • src: decomposed matrix. The depth has to be CV_32F or CV_64F.
  • w: calculated singular values
  • u: calculated left singular vectors
  • vt: transposed matrix of right singular vectors
  • flags: operation flags - see SVD::Flags.
C++ default parameters
  • flags: 0
source

pub fn compute( src: &dyn ToInputArray, w: &mut dyn ToOutputArray, flags: i32 ) -> Result<()>

decomposes matrix and stores the results to user-provided matrices

The methods/functions perform SVD of matrix. Unlike SVD::SVD constructor and SVD::operator(), they store the results to the user-provided matrices:

Mat A, w, u, vt;
SVD::compute(A, w, u, vt);
Parameters
  • src: decomposed matrix. The depth has to be CV_32F or CV_64F.
  • w: calculated singular values
  • u: calculated left singular vectors
  • vt: transposed matrix of right singular vectors
  • flags: operation flags - see SVD::Flags.
Overloaded parameters

computes singular values of a matrix

  • src: decomposed matrix. The depth has to be CV_32F or CV_64F.
  • w: calculated singular values
  • flags: operation flags - see SVD::Flags.
C++ default parameters
  • flags: 0
source

pub fn back_subst_multi( w: &dyn ToInputArray, u: &dyn ToInputArray, vt: &dyn ToInputArray, rhs: &dyn ToInputArray, dst: &mut dyn ToOutputArray ) -> Result<()>

performs back substitution

source

pub fn solve_z(src: &dyn ToInputArray, dst: &mut dyn ToOutputArray) -> Result<()>

solves an under-determined singular linear system

The method finds a unit-length solution x of a singular linear system A*x = 0. Depending on the rank of A, there can be no solutions, a single solution or an infinite number of solutions. In general, the algorithm solves the following problem: block formula

Parameters
  • src: left-hand-side matrix.
  • dst: found solution.

Trait Implementations§

source§

impl Boxed for SVD

source§

unsafe fn from_raw(ptr: *mut c_void) -> Self

Wrap the specified raw pointer Read more
source§

fn into_raw(self) -> *mut c_void

Return an the underlying raw pointer while consuming this wrapper. Read more
source§

fn as_raw(&self) -> *const c_void

Return the underlying raw pointer. Read more
source§

fn as_raw_mut(&mut self) -> *mut c_void

Return the underlying mutable raw pointer Read more
source§

impl Drop for SVD

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl SVDTrait for SVD

source§

fn as_raw_mut_SVD(&mut self) -> *mut c_void

source§

fn set_u(&mut self, val: Mat)

source§

fn set_w(&mut self, val: Mat)

source§

fn set_vt(&mut self, val: Mat)

source§

fn apply(&mut self, src: &dyn ToInputArray, flags: i32) -> Result<SVD>

the operator that performs SVD. The previously allocated u, w and vt are released. Read more
source§

impl SVDTraitConst for SVD

source§

fn as_raw_SVD(&self) -> *const c_void

source§

fn u(&self) -> Mat

source§

fn w(&self) -> Mat

source§

fn vt(&self) -> Mat

source§

fn back_subst( &self, rhs: &dyn ToInputArray, dst: &mut dyn ToOutputArray ) -> Result<()>

performs a singular value back substitution. Read more
source§

impl Send for SVD

Auto Trait Implementations§

§

impl RefUnwindSafe for SVD

§

impl !Sync for SVD

§

impl Unpin for SVD

§

impl UnwindSafe for SVD

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.