moments_any_xld ( XLD : : Mode, PointOrder, Area, CenterRow, CenterCol, P, Q : M )

Arbitrary geometric moments of contours or polygons.

moments_any_xld calculates arbitrary moments M of the region enclosed by the contours or polygons XLD. The moments are computed by applying Green's theorem using only the points on the contour or polygon, i.e., no region is generated explicitely for the purpose of calculating the features. It is assumed that the contours or polygons are closed. If this is not the case moments_any_xld will add one point to artificially produce a closed shape. The computed moments are normalized depending on the desired mode Mode:

'unnormalized': No normalization.

'normalized': Normalization by the area of the enclosed image region.

'central': Normalization by the area of the enclosed image region and a shift of the region by it's centroid.

For the normalization of the moments three specific moments are used: The area Area of the enclosed image region and the coordinates CenterRow,CenterRow of it's centroid, see area_center_xld. In addition to that moments_any_xld ecpects information about the point order of the input contours/polygons in PointOrder, see area_center_xld again. If more than one contour or polygon is passed M contains all desired moments of the first contour/polygon followed by all the moments of the second contour/polygon and so forth.


Parameters

XLD (input_object)
xld(-array) -> object
Contours or polygons to be examined.

Mode (input_control)
string -> string
computation mode.
Default value: 'unnormalized'
Suggested values: 'unnormalized', 'normalized', 'central'

PointOrder (input_control)
string(-array) -> string
point order along the boundary.
Default value: 'positive'
Suggested values: 'positive', 'negative'

Area (input_control)
real(-array) -> real
Area enclosed by the contour or polygon.

CenterRow (input_control)
point.y(-array) -> real
Row coordinate of the centroid.

CenterCol (input_control)
point.x(-array) -> real
Column coordinate of the centroid.

P (input_control)
point.x(-array) -> integer
first index of the desired moments M[P,Q].
Default value: 1

Q (input_control)
point.x(-array) -> integer
second index of the desired moments M[P,Q].
Default value: 1

M (output_control)
real(-array) -> real
the computed moments.


Complexity

Let n be the number of points of the contour or polygon. Then the run time is O(n).


Result

moments_any_xld returns TRUE if the input is not empty. If the input is empty the behaviour can be set via set_system(::'no_object_result',<Result>:). If necessary, an exception is raised.


Possible Predecessors

area_center_xld, gen_contour2_xld, gen_contour_xld, smooth_cont_xld, poly_xld


Alternatives

moments_xld


See also

moments_xld, area_center_xld, moments, area_center



Copyright © 1996-1997 MVTec Software GmbH