moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld moments_any_points_xld (Operator)
Name
moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld moments_any_points_xld
— Arbitrary geometric moments of contours or polygons treated as point
clouds.
Signature
Herror moments_any_points_xld (const Hobject XLD , const char* Mode , double Area , double CenterRow , double CenterCol , const Hlong P , const Hlong Q , double* M )
Herror T_moments_any_points_xld (const Hobject XLD , const Htuple Mode , const Htuple Area , const Htuple CenterRow , const Htuple CenterCol , const Htuple P , const Htuple Q , Htuple* M )
void MomentsAnyPointsXld (const HObject& XLD , const HTuple& Mode , const HTuple& Area , const HTuple& CenterRow , const HTuple& CenterCol , const HTuple& P , const HTuple& Q , HTuple* M )
HTuple HXLD ::MomentsAnyPointsXld (const HString& Mode , const HTuple& Area , const HTuple& CenterRow , const HTuple& CenterCol , const HTuple& P , const HTuple& Q ) const
double HXLD ::MomentsAnyPointsXld (const HString& Mode , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
double HXLD ::MomentsAnyPointsXld (const char* Mode , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
double HXLD ::MomentsAnyPointsXld (const wchar_t* Mode , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
(Windows only)
static void HOperatorSet .MomentsAnyPointsXld (HObject XLD , HTuple mode , HTuple area , HTuple centerRow , HTuple centerCol , HTuple p , HTuple q , out HTuple m )
HTuple HXLD .MomentsAnyPointsXld (string mode , HTuple area , HTuple centerRow , HTuple centerCol , HTuple p , HTuple q )
double HXLD .MomentsAnyPointsXld (string mode , double area , double centerRow , double centerCol , int p , int q )
def moments_any_points_xld (xld : HObject, mode : str, area : MaybeSequence[float], center_row : MaybeSequence[float], center_col : MaybeSequence[float], p : MaybeSequence[int], q : MaybeSequence[int]) -> Sequence[float]
def moments_any_points_xld_s (xld : HObject, mode : str, area : MaybeSequence[float], center_row : MaybeSequence[float], center_col : MaybeSequence[float], p : MaybeSequence[int], q : MaybeSequence[int]) -> float
Description
moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld moments_any_points_xld
calculates arbitrary moments
M M M M m m
of the point clouds given by the contours or polygons
XLD XLD XLD XLD XLD xld
(i.e., the order of the points in the contour or
polygon is not taken into account).
The computed moments are normalized depending on the desired mode
Mode Mode Mode Mode mode mode
:
'unnormalized':
No normalization.
'unnormalized_central':
Shift the contour points by their centroid
'normalized':
Normalization by the area A = Area Area Area Area area area
'central':
Normalization by the area A = Area Area Area Area area area
and a shift of the contour points by their centroid
For the normalization of the moments three specific values are
used: The area Area Area Area Area area area
and the coordinates
CenterRow CenterRow CenterRow CenterRow centerRow center_row
,CenterCol CenterCol CenterCol CenterCol centerCol center_col
of it's centroid (this values can be
computed with area_center_points_xld area_center_points_xld AreaCenterPointsXld AreaCenterPointsXld AreaCenterPointsXld area_center_points_xld
).
If the contour or polygon is closed (end point = start point), the end point
of the contour or polygon is not taken into account to avoid that it receives
twice the weight of the other points.
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld moments_any_xld
should be used if the contour XLD XLD XLD XLD XLD xld
intersects itself or if it is not possible to close the contour using a line
from end to start point without self-intersection, because in this case
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld moments_any_xld
does not produce useful results. To test whether the
contours or polygons intersect themselves,
test_self_intersection_xld test_self_intersection_xld TestSelfIntersectionXld TestSelfIntersectionXld TestSelfIntersectionXld test_self_intersection_xld
can be used.
If more than one contour or polygon is passed, M M M M m m
contains
all desired moments of the first contour/polygon followed by all the
moments of the second contour/polygon and so forth.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Processed without parallelization.
Parameters
XLD XLD XLD XLD XLD xld
(input_object) xld(-array) →
object HXLD HObject HXLD Hobject
Contours or polygons to be examined.
Mode Mode Mode Mode mode mode
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Computation mode.
Default value:
'unnormalized'
"unnormalized"
"unnormalized"
"unnormalized"
"unnormalized"
"unnormalized"
Suggested values: 'unnormalized' "unnormalized" "unnormalized" "unnormalized" "unnormalized" "unnormalized" , 'unnormalized_central' "unnormalized_central" "unnormalized_central" "unnormalized_central" "unnormalized_central" "unnormalized_central" , 'normalized' "normalized" "normalized" "normalized" "normalized" "normalized" , 'central' "central" "central" "central" "central" "central"
Area Area Area Area area area
(input_control) real(-array) →
HTuple MaybeSequence[float] HTuple Htuple (real) (double ) (double ) (double )
Area enclosed by the contour or polygon.
CenterRow CenterRow CenterRow CenterRow centerRow center_row
(input_control) point.y(-array) →
HTuple MaybeSequence[float] HTuple Htuple (real) (double ) (double ) (double )
Row coordinate of the centroid.
CenterCol CenterCol CenterCol CenterCol centerCol center_col
(input_control) point.x(-array) →
HTuple MaybeSequence[float] HTuple Htuple (real) (double ) (double ) (double )
Column coordinate of the centroid.
P P P P p p
(input_control) point.x(-array) →
HTuple MaybeSequence[int] HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
First index of the desired moments
.
Default value: 1
Suggested values: 0, 1, 2, 3, 4
Q Q Q Q q q
(input_control) point.x(-array) →
HTuple MaybeSequence[int] HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Second index of the desired moments
.
Default value: 1
Suggested values: 0, 1, 2, 3, 4
M M M M m m
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
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_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld moments_any_points_xld
returns TRUE if the input is not
empty. If the input is empty the behavior can be set via
set_system(::'no_object_result',<Result>:) set_system("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>) set_system("no_object_result",<Result>)
. If necessary,
an exception is raised.
Possible Predecessors
area_center_points_xld area_center_points_xld AreaCenterPointsXld AreaCenterPointsXld AreaCenterPointsXld area_center_points_xld
,
gen_contours_skeleton_xld gen_contours_skeleton_xld GenContoursSkeletonXld GenContoursSkeletonXld GenContoursSkeletonXld gen_contours_skeleton_xld
,
smooth_contours_xld smooth_contours_xld SmoothContoursXld SmoothContoursXld SmoothContoursXld smooth_contours_xld
,
gen_polygons_xld gen_polygons_xld GenPolygonsXld GenPolygonsXld GenPolygonsXld gen_polygons_xld
Alternatives
moments_points_xld moments_points_xld MomentsPointsXld MomentsPointsXld MomentsPointsXld moments_points_xld
,
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld moments_any_xld
See also
moments_points_xld moments_points_xld MomentsPointsXld MomentsPointsXld MomentsPointsXld moments_points_xld
,
area_center_points_xld area_center_points_xld AreaCenterPointsXld AreaCenterPointsXld AreaCenterPointsXld area_center_points_xld
,
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd
,
area_center area_center AreaCenter AreaCenter AreaCenter area_center
Module
Foundation