[][src]Trait opencv::hub_prelude::MatExprTrait

pub trait MatExprTrait {
    pub fn as_raw_MatExpr(&self) -> *const c_void;
pub fn as_raw_mut_MatExpr(&mut self) -> *mut c_void; pub fn flags(&self) -> i32 { ... }
pub fn set_flags(&mut self, val: i32) { ... }
pub fn a(&mut self) -> Mat { ... }
pub fn set_a(&mut self, val: Mat) { ... }
pub fn b(&mut self) -> Mat { ... }
pub fn set_b(&mut self, val: Mat) { ... }
pub fn c(&mut self) -> Mat { ... }
pub fn set_c(&mut self, val: Mat) { ... }
pub fn alpha(&self) -> f64 { ... }
pub fn set_alpha(&mut self, val: f64) { ... }
pub fn beta(&self) -> f64 { ... }
pub fn set_beta(&mut self, val: f64) { ... }
pub fn s(&self) -> Scalar { ... }
pub fn set_s(&mut self, val: Scalar) { ... }
pub fn to_mat(&self) -> Result<Mat> { ... }
pub fn size(&self) -> Result<Size> { ... }
pub fn typ(&self) -> Result<i32> { ... }
pub fn row(&self, y: i32) -> Result<MatExpr> { ... }
pub fn col(&self, x: i32) -> Result<MatExpr> { ... }
pub fn diag(&self, d: i32) -> Result<MatExpr> { ... }
pub fn t(&self) -> Result<MatExpr> { ... }
pub fn inv(&self, method: i32) -> Result<MatExpr> { ... }
pub fn mul_matexpr(&self, e: &MatExpr, scale: f64) -> Result<MatExpr> { ... }
pub fn mul(&self, m: &Mat, scale: f64) -> Result<MatExpr> { ... }
pub fn cross(&self, m: &Mat) -> Result<Mat> { ... }
pub fn dot(&self, m: &Mat) -> Result<f64> { ... }
pub fn swap(&mut self, b: &mut MatExpr) -> Result<()> { ... } }

Matrix expression representation @anchor MatrixExpressions This is a list of implemented matrix operations that can be combined in arbitrary complex expressions (here A, B stand for matrices ( Mat ), s for a scalar ( Scalar ), alpha for a real-valued scalar ( double )):

  • Addition, subtraction, negation: A+B, A-B, A+s, A-s, s+A, s-A, -A
  • Scaling: A*alpha
  • Per-element multiplication and division: A.mul(B), A/B, alpha/A
  • Matrix multiplication: A*B
  • Transposition: A.t() (means AT)
  • Matrix inversion and pseudo-inversion, solving linear systems and least-squares problems: A.inv([method]) (~ A<sup>-1</sup>), A.inv([method])*B (~ X: AX=B)
  • Comparison: A cmpop B, A cmpop alpha, alpha cmpop A, where cmpop is one of >, >=, ==, !=, <=, <. The result of comparison is an 8-bit single channel mask whose elements are set to 255 (if the particular element or pair of elements satisfy the condition) or
  • Bitwise logical operations: A logicop B, A logicop s, s logicop A, ~A, where logicop is one of &, |, ^.
  • Element-wise minimum and maximum: min(A, B), min(A, alpha), max(A, B), max(A, alpha)
  • Element-wise absolute value: abs(A)
  • Cross-product, dot-product: A.cross(B), A.dot(B)
  • Any function of matrix or matrices and scalars that returns a matrix or a scalar, such as norm, mean, sum, countNonZero, trace, determinant, repeat, and others.
  • Matrix initializers ( Mat::eye(), Mat::zeros(), Mat::ones() ), matrix comma-separated initializers, matrix constructors and operators that extract sub-matrices (see Mat description).
  • Mat_<destination_type>() constructors to cast the result to the proper type.

Note: Comma-separated initializers and probably some other operations may require additional explicit Mat() or Mat_() constructor calls to resolve a possible ambiguity.

Here are examples of matrix expressions:

   // compute pseudo-inverse of A, equivalent to A.inv(DECOMP_SVD)
   SVD svd(A);
   Mat pinvA = svd.vt.t()*Mat::diag(1./svd.w)*svd.u.t();
 
   // compute the new vector of parameters in the Levenberg-Marquardt algorithm
   x -= (A.t()*A + lambda*Mat::eye(A.cols,A.cols,A.type())).inv(DECOMP_CHOLESKY)*(A.t()*err);
 
   // sharpen image using "unsharp mask" algorithm
   Mat blurred; double sigma = 1, threshold = 5, amount = 1;
   GaussianBlur(img, blurred, Size(), sigma, sigma);
   Mat lowContrastMask = abs(img - blurred) < threshold;
   Mat sharpened = img*(1+amount) + blurred*(-amount);
   img.copyTo(sharpened, lowContrastMask);

Required methods

Loading content...

Provided methods

pub fn flags(&self) -> i32[src]

pub fn set_flags(&mut self, val: i32)[src]

pub fn a(&mut self) -> Mat[src]

pub fn set_a(&mut self, val: Mat)[src]

pub fn b(&mut self) -> Mat[src]

pub fn set_b(&mut self, val: Mat)[src]

pub fn c(&mut self) -> Mat[src]

pub fn set_c(&mut self, val: Mat)[src]

pub fn alpha(&self) -> f64[src]

pub fn set_alpha(&mut self, val: f64)[src]

pub fn beta(&self) -> f64[src]

pub fn set_beta(&mut self, val: f64)[src]

pub fn s(&self) -> Scalar[src]

pub fn set_s(&mut self, val: Scalar)[src]

pub fn to_mat(&self) -> Result<Mat>[src]

pub fn size(&self) -> Result<Size>[src]

pub fn typ(&self) -> Result<i32>[src]

pub fn row(&self, y: i32) -> Result<MatExpr>[src]

pub fn col(&self, x: i32) -> Result<MatExpr>[src]

pub fn diag(&self, d: i32) -> Result<MatExpr>[src]

pub fn t(&self) -> Result<MatExpr>[src]

pub fn inv(&self, method: i32) -> Result<MatExpr>[src]

C++ default parameters

  • method: DECOMP_LU

pub fn mul_matexpr(&self, e: &MatExpr, scale: f64) -> Result<MatExpr>[src]

pub fn mul(&self, m: &Mat, scale: f64) -> Result<MatExpr>[src]

pub fn cross(&self, m: &Mat) -> Result<Mat>[src]

pub fn dot(&self, m: &Mat) -> Result<f64>[src]

pub fn swap(&mut self, b: &mut MatExpr) -> Result<()>[src]

Loading content...

Implementors

impl MatExprTrait for MatExpr[src]

Loading content...