moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar (Operator)
Name
moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar
— 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 )
Description
The operator moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar MomentsRegion2ndInvar
calculates the
scaled moments (M20 M20 M20 M20 m20
, M02 M02 M02 M02 m02
)
and the procut of inertia of the axes through the center parallel to the
coordinate axes (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
).
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
(input_object) region(-array) →
object HRegion HRegion Hobject
Regions to be examined.
M11 M11 M11 M11 m11
(output_control) real(-array) →
HTuple 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
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Moment of 2nd order (line-dependent).
M02 M02 M02 M02 m02
(output_control) real(-array) →
HTuple 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
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>)
.
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>)
.
If necessary an exception is raised.
Possible Predecessors
threshold threshold Threshold Threshold Threshold
,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing
,
connection connection Connection Connection Connection
Alternatives
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd
See also
elliptic_axis elliptic_axis EllipticAxis EllipticAxis EllipticAxis
Module
Foundation