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