Back to Adaptive Vision Library website
You are here: Start » Function Reference » Shape Features » ShapeMoment
ShapeMoment
Computes the selected second-order moment of a shape in regular and normalized ( divided by shape area ) variant.
Syntax
C++
C#
void avl::ShapeMoment ( const avl::Path& inShape, avl::ShapeMomentType::Type inMomentType, bool inCentral, atl::real& outMoment, atl::real& outNormMoment )
Parameters
| Name | Type | Default | Description | |
|---|---|---|---|---|
![]() |
inShape | const Path& | ||
![]() |
inMomentType | ShapeMomentType::Type | ||
![]() |
inCentral | bool | ||
![]() |
outMoment | real& | ||
![]() |
outNormMoment | real& |
Description
The operation computes the mathematical features of a shape called moments. Those are integrals computed as follows:
\[ \begin{aligned} Moment_{2,0}(S) &= \int_{S} p_x^2 \\ Moment_{1,1}(S) &= \int_{S} p_x p_y \\ Moment_{0,2}(S) &= \int_{S} p_y^2 \end{aligned} \]The integration is conducted over shape surface, while \( p_x \) and \( p_y \) denote, accordingly, x and y coordinate of a point.
When inCentral parameter is set, the shape is shifted before computations so that its mass center is at location (0,0).
Note that if the input path is not a valid shape (i.e. it has at least one self-intersection), the computation may lead to results that are not intuitive.
Errors
| Error type | Description |
|---|---|
| DomainError | Open path on input in ShapeMoment. |
| DomainError | Not supported moment type in ShapeMoment. |


