moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar moments_region_2nd_invar (Operator)
Name
moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar moments_region_2nd_invar
— Geometric moments of regions.
Signature
Herror moments_region_2nd_invar (const Hobject Regions , double* M11 , double* M20 , double* M02 )
Herror T_moments_region_2nd_invar (const Hobject Regions , Htuple* M11 , Htuple* M20 , Htuple* M02 )
def moments_region_2nd_invar (regions : HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def moments_region_2nd_invar_s (regions : HObject) -> Tuple[float, float, float]
Description
The operator moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar MomentsRegion2ndInvar moments_region_2nd_invar
calculates the
scaled moments (M20 M20 M20 M20 m20 m20
, M02 M02 M02 M02 m02 m02
)
and the product of inertia of the axes through the center parallel to the
coordinate axes (M11 M11 M11 M11 m11 m11
).
Calculation:
and
are the coordinates
of the center of a region R with the area F.
Then the moments
are defined by:
,
wherein Z and S run through all pixels of the region
R.
If more than one region is passed the results are stored in tuples, the index
of a value in the tuple corresponding to the index of a region in the input.
In case of empty region all parameters have the value 0.0 if no other
behavior was set (see set_system set_system SetSystem SetSystem SetSystem set_system
).
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
Parameters
Regions Regions Regions Regions regions regions
(input_object) region(-array) →
object HRegion HObject HRegion Hobject
Regions to be examined.
M11 M11 M11 M11 m11 m11
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Product of inertia of the axes through the center
parallel to the coordinate axes.
M20 M20 M20 M20 m20 m20
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Moment of 2nd order (line-dependent).
M02 M02 M02 M02 m02 m02
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Moment of 2nd order (column-dependent).
Complexity
If F is the area of the region the mean runtime
complexity is O(sqrt(F)).
Result
The operator moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar MomentsRegion2ndInvar moments_region_2nd_invar
returns the value 2 (H_MSG_TRUE )
if the input is not empty.
The behavior in case of empty input (no input regions available) is
set via the operator 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>)
.
The behavior in case of empty region (the region is the empty set) is set via
set_system('empty_region_result',<Result>) set_system("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) set_system("empty_region_result",<Result>)
.
If necessary an exception is raised.
Possible Predecessors
threshold threshold Threshold Threshold Threshold threshold
,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing
,
connection connection Connection Connection Connection connection
Alternatives
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd
See also
elliptic_axis elliptic_axis EllipticAxis EllipticAxis EllipticAxis elliptic_axis
Module
Foundation