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 explicitly 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 artificially close the contours or polygons. The computed moments are normalized depending on the desired mode Mode:

'unnormalized':         No normalization.
'unnormalized_central': Shift the region by its centroid.
'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
                        its 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', 'unnormalized_central', '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 2 (H_MSG_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.


Parallelization Information

moments_any_xld is local and processed completely exclusively without parallelization.


Possible Predecessors

area_center_xld, gen_contours_skeleton_xld, smooth_contours_xld, gen_polygons_xld


Alternatives

moments_xld


See also

moments_xld, area_center_xld, moments_region_2nd, area_center


Module

Sub-pixel operators



Copyright © 1996-2005 MVTec Software GmbH