Back to Adaptive Vision Library website

You are here: Start » Function Reference » Path » Polygon Features » PolygonMoment

PolygonMoment


Header: AVL.h
Namespace: avl
Module: FoundationBasic

Computes the selected second-order moment of a polygon in regular and normalized ( divided by polygon area ) variant.

Syntax

C++
C#
 
void avl::PolygonMoment
(
	const avl::Path& inPolygon,
	avl::PolygonMomentType::Type inMomentType,
	bool inCentral,
	float& outMoment,
	float& outNormMoment
)

Parameters

Name Type Default Description
inPolygon const Path&
inMomentType PolygonMomentType::Type
inCentral bool
outMoment float&
outNormMoment float&

Description

The operation computes the mathematical features of a polygon 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 polygon surface, while \( p_x \) and \( p_y \) denote, accordingly, x and y coordinate of a point.

When inCentral parameter is set, the polygon is shifted before computations so that its mass center is at location (0,0).

Note that if the input path is not a valid polygon (i.e. it has at least one self-intersection), the computation may lead to results that are not intuitive.

Errors

List of possible exceptions:

Error type Description
DomainError Not supported moment type in PolygonMoment.
DomainError Open path on input in PolygonMoment.

See Also

  • RegionMoment – Computes selected second-order moment of a region in regular and normalized ( divided by region area ) variant.
  • ImageMoment – Computes the selected moment of an image in regular and normalized (divided by sum of pixel values) variant.