Class MatExpr
- Namespace
- OpenCvSharp
- Assembly
- OpenCvSharp.dll
A purely managed, lazily-evaluated matrix expression — the result of Mat
arithmetic. This is the managed counterpart of OpenCV's cv::MatExpr (issue #1974).
public sealed class MatExpr
- Inheritance
-
MatExpr
- Inherited Members
Remarks
A Mat operator such as a + b returns a MatExpr without
creating any native object: it simply captures its operands in a deferred delegate. The native
cv::MatExpr chain is built only when the expression is materialized (ToMat()
or the implicit conversion to Mat), and every native intermediate is disposed
immediately during that evaluation. Nothing escapes to the finalizer, intermediates never
extend operand lifetimes, and no using dance is required: a chain such as
255 - mat * 0.8 is leak-free and can be received straight into a Mat.
Operators that OpenCV only defines on Mat (the comparisons, the bitwise operators,
min/max) are evaluated by materializing the operand subtrees to Mat
at that node and applying the Mat-level operation — exactly what OpenCV C++ does, since
those operators take Mat and implicitly evaluate any expression operands. The arithmetic
operators (+ - * /) and abs keep OpenCV's native cross-node expression fusion.
Methods
Abs()
Computes an absolute value of each matrix element (cv::abs). Keeps native expression fusion.
public MatExpr Abs()
Returns
Add(Mat)
public MatExpr Add(Mat m)
Parameters
mMat
Returns
Add(MatExpr)
public MatExpr Add(MatExpr e)
Parameters
eMatExpr
Returns
Add(Scalar)
public MatExpr Add(Scalar s)
Parameters
sScalar
Returns
BitwiseAnd(Mat)
public MatExpr BitwiseAnd(Mat m)
Parameters
mMat
Returns
BitwiseAnd(MatExpr)
public MatExpr BitwiseAnd(MatExpr e)
Parameters
eMatExpr
Returns
BitwiseAnd(double)
public MatExpr BitwiseAnd(double s)
Parameters
sdouble
Returns
BitwiseOr(Mat)
public MatExpr BitwiseOr(Mat m)
Parameters
mMat
Returns
BitwiseOr(MatExpr)
public MatExpr BitwiseOr(MatExpr e)
Parameters
eMatExpr
Returns
BitwiseOr(double)
public MatExpr BitwiseOr(double s)
Parameters
sdouble
Returns
Col(int)
Creates a matrix header for the specified matrix column.
public MatExpr Col(int x)
Parameters
xint
Returns
Cross(Mat)
Computes a cross-product of two 3-element vectors. Materializes the expression.
public Mat Cross(Mat m)
Parameters
mMat
Returns
Diag(MatDiagType)
Extracts a diagonal from a matrix.
public MatExpr Diag(MatDiagType d = MatDiagType.Main)
Parameters
Returns
Divide(Mat)
public MatExpr Divide(Mat m)
Parameters
mMat
Returns
Divide(MatExpr)
public MatExpr Divide(MatExpr e)
Parameters
eMatExpr
Returns
Divide(double)
public MatExpr Divide(double s)
Parameters
sdouble
Returns
Dot(Mat)
Computes a dot-product of two vectors. Materializes the expression.
public double Dot(Mat m)
Parameters
mMat
Returns
Equal(Mat)
operator ==
public MatExpr Equal(Mat m)
Parameters
mMat
Returns
Equal(MatExpr)
operator ==
public MatExpr Equal(MatExpr e)
Parameters
eMatExpr
Returns
Equal(double)
operator ==
public MatExpr Equal(double d)
Parameters
ddouble
Returns
From(Mat)
Wraps a Mat as a leaf node of the expression tree.
public static MatExpr From(Mat mat)
Parameters
matMat
Returns
GreaterThan(Mat)
operator >
public MatExpr GreaterThan(Mat m)
Parameters
mMat
Returns
GreaterThan(MatExpr)
operator >
public MatExpr GreaterThan(MatExpr e)
Parameters
eMatExpr
Returns
GreaterThan(double)
operator >
public MatExpr GreaterThan(double d)
Parameters
ddouble
Returns
GreaterThanOrEqual(Mat)
operator >=
public MatExpr GreaterThanOrEqual(Mat m)
Parameters
mMat
Returns
GreaterThanOrEqual(MatExpr)
operator >=
public MatExpr GreaterThanOrEqual(MatExpr e)
Parameters
eMatExpr
Returns
GreaterThanOrEqual(double)
operator >=
public MatExpr GreaterThanOrEqual(double d)
Parameters
ddouble
Returns
Inv(DecompTypes)
Inversion (cv::MatExpr::inv).
public MatExpr Inv(DecompTypes method = DecompTypes.LU)
Parameters
methodDecompTypes
Returns
LessThan(Mat)
operator <
public MatExpr LessThan(Mat m)
Parameters
mMat
Returns
LessThan(MatExpr)
operator <
public MatExpr LessThan(MatExpr e)
Parameters
eMatExpr
Returns
LessThan(double)
operator <
public MatExpr LessThan(double d)
Parameters
ddouble
Returns
LessThanOrEqual(Mat)
operator <=
public MatExpr LessThanOrEqual(Mat m)
Parameters
mMat
Returns
LessThanOrEqual(MatExpr)
operator <=
public MatExpr LessThanOrEqual(MatExpr e)
Parameters
eMatExpr
Returns
LessThanOrEqual(double)
operator <=
public MatExpr LessThanOrEqual(double d)
Parameters
ddouble
Returns
Max(Mat)
Per-element maximum (cv::max). Operands are materialized to Mat.
public MatExpr Max(Mat m)
Parameters
mMat
Returns
Max(MatExpr)
Per-element maximum (cv::max). Operands are materialized to Mat.
public MatExpr Max(MatExpr e)
Parameters
eMatExpr
Returns
Max(double)
Per-element maximum against a scalar value (cv::max).
public MatExpr Max(double d)
Parameters
ddouble
Returns
Min(Mat)
Per-element minimum (cv::min). Operands are materialized to Mat.
public MatExpr Min(Mat m)
Parameters
mMat
Returns
Min(MatExpr)
Per-element minimum (cv::min). Operands are materialized to Mat.
public MatExpr Min(MatExpr e)
Parameters
eMatExpr
Returns
Min(double)
Per-element minimum against a scalar value (cv::min).
public MatExpr Min(double d)
Parameters
ddouble
Returns
Mul(Mat, double)
Per-element multiplication (cv::MatExpr::mul).
public MatExpr Mul(Mat m, double scale = 1)
Parameters
Returns
Mul(MatExpr, double)
Per-element multiplication (cv::MatExpr::mul).
public MatExpr Mul(MatExpr e, double scale = 1)
Parameters
Returns
Multiply(Mat)
public MatExpr Multiply(Mat m)
Parameters
mMat
Returns
Multiply(MatExpr)
public MatExpr Multiply(MatExpr e)
Parameters
eMatExpr
Returns
Multiply(double)
public MatExpr Multiply(double s)
Parameters
sdouble
Returns
Negate()
public MatExpr Negate()
Returns
NotEqual(Mat)
operator !=
public MatExpr NotEqual(Mat m)
Parameters
mMat
Returns
NotEqual(MatExpr)
operator !=
public MatExpr NotEqual(MatExpr e)
Parameters
eMatExpr
Returns
NotEqual(double)
operator !=
public MatExpr NotEqual(double d)
Parameters
ddouble
Returns
OnesComplement()
public MatExpr OnesComplement()
Returns
Plus()
public MatExpr Plus()
Returns
Row(int)
Creates a matrix header for the specified matrix row.
public MatExpr Row(int y)
Parameters
yint
Returns
Size()
Returns the size of the matrix. Materializes the expression.
public Size Size()
Returns
SubMat(Range, Range)
Extracts a rectangular submatrix.
public MatExpr SubMat(Range rowRange, Range colRange)
Parameters
Returns
SubMat(Rect)
Extracts a rectangular submatrix.
public MatExpr SubMat(Rect roi)
Parameters
roiRect
Returns
SubMat(int, int, int, int)
Extracts a rectangular submatrix.
public MatExpr SubMat(int rowStart, int rowEnd, int colStart, int colEnd)
Parameters
Returns
Subtract(Mat)
public MatExpr Subtract(Mat m)
Parameters
mMat
Returns
Subtract(MatExpr)
public MatExpr Subtract(MatExpr e)
Parameters
eMatExpr
Returns
Subtract(Scalar)
public MatExpr Subtract(Scalar s)
Parameters
sScalar
Returns
T()
Transposition (cv::MatExpr::t).
public MatExpr T()
Returns
ToMat()
Materializes the expression into a new Mat.
public Mat ToMat()
Returns
Type()
Returns the element type of the matrix. Materializes the expression.
public MatType Type()
Returns
Xor(Mat)
public MatExpr Xor(Mat m)
Parameters
mMat
Returns
Xor(MatExpr)
public MatExpr Xor(MatExpr e)
Parameters
eMatExpr
Returns
Xor(double)
public MatExpr Xor(double s)
Parameters
sdouble
Returns
Operators
operator +(Mat, MatExpr)
public static MatExpr operator +(Mat a, MatExpr b)
Parameters
Returns
operator +(MatExpr, Mat)
public static MatExpr operator +(MatExpr a, Mat b)
Parameters
Returns
operator +(MatExpr, MatExpr)
public static MatExpr operator +(MatExpr a, MatExpr b)
Parameters
Returns
operator +(MatExpr, Scalar)
public static MatExpr operator +(MatExpr a, Scalar s)
Parameters
Returns
operator +(Scalar, MatExpr)
public static MatExpr operator +(Scalar s, MatExpr a)
Parameters
Returns
operator &(Mat, MatExpr)
public static MatExpr operator &(Mat a, MatExpr b)
Parameters
Returns
operator &(MatExpr, Mat)
public static MatExpr operator &(MatExpr a, Mat b)
Parameters
Returns
operator &(MatExpr, MatExpr)
public static MatExpr operator &(MatExpr a, MatExpr b)
Parameters
Returns
operator &(MatExpr, double)
public static MatExpr operator &(MatExpr a, double s)
Parameters
Returns
operator &(double, MatExpr)
public static MatExpr operator &(double s, MatExpr a)
Parameters
Returns
operator |(Mat, MatExpr)
public static MatExpr operator |(Mat a, MatExpr b)
Parameters
Returns
operator |(MatExpr, Mat)
public static MatExpr operator |(MatExpr a, Mat b)
Parameters
Returns
operator |(MatExpr, MatExpr)
public static MatExpr operator |(MatExpr a, MatExpr b)
Parameters
Returns
operator |(MatExpr, double)
public static MatExpr operator |(MatExpr a, double s)
Parameters
Returns
operator |(double, MatExpr)
public static MatExpr operator |(double s, MatExpr a)
Parameters
Returns
operator /(Mat, MatExpr)
public static MatExpr operator /(Mat a, MatExpr b)
Parameters
Returns
operator /(MatExpr, Mat)
public static MatExpr operator /(MatExpr a, Mat b)
Parameters
Returns
operator /(MatExpr, MatExpr)
public static MatExpr operator /(MatExpr a, MatExpr b)
Parameters
Returns
operator /(MatExpr, double)
public static MatExpr operator /(MatExpr a, double s)
Parameters
Returns
operator /(double, MatExpr)
public static MatExpr operator /(double s, MatExpr a)
Parameters
Returns
operator ^(Mat, MatExpr)
public static MatExpr operator ^(Mat a, MatExpr b)
Parameters
Returns
operator ^(MatExpr, Mat)
public static MatExpr operator ^(MatExpr a, Mat b)
Parameters
Returns
operator ^(MatExpr, MatExpr)
public static MatExpr operator ^(MatExpr a, MatExpr b)
Parameters
Returns
operator ^(MatExpr, double)
public static MatExpr operator ^(MatExpr a, double s)
Parameters
Returns
operator ^(double, MatExpr)
public static MatExpr operator ^(double s, MatExpr a)
Parameters
Returns
implicit operator Mat(MatExpr)
Materializes the expression into a new Mat.
public static implicit operator Mat(MatExpr node)
Parameters
nodeMatExpr
Returns
operator *(Mat, MatExpr)
public static MatExpr operator *(Mat a, MatExpr b)
Parameters
Returns
operator *(MatExpr, Mat)
public static MatExpr operator *(MatExpr a, Mat b)
Parameters
Returns
operator *(MatExpr, MatExpr)
public static MatExpr operator *(MatExpr a, MatExpr b)
Parameters
Returns
operator *(MatExpr, double)
public static MatExpr operator *(MatExpr a, double s)
Parameters
Returns
operator *(double, MatExpr)
public static MatExpr operator *(double s, MatExpr a)
Parameters
Returns
operator ~(MatExpr)
public static MatExpr operator ~(MatExpr e)
Parameters
eMatExpr
Returns
operator -(Mat, MatExpr)
public static MatExpr operator -(Mat a, MatExpr b)
Parameters
Returns
operator -(MatExpr, Mat)
public static MatExpr operator -(MatExpr a, Mat b)
Parameters
Returns
operator -(MatExpr, MatExpr)
public static MatExpr operator -(MatExpr a, MatExpr b)
Parameters
Returns
operator -(MatExpr, Scalar)
public static MatExpr operator -(MatExpr a, Scalar s)
Parameters
Returns
operator -(Scalar, MatExpr)
public static MatExpr operator -(Scalar s, MatExpr a)
Parameters
Returns
operator -(MatExpr)
public static MatExpr operator -(MatExpr e)
Parameters
eMatExpr
Returns
operator +(MatExpr)
public static MatExpr operator +(MatExpr e)
Parameters
eMatExpr