moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd (Operator)
Name
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd
— Calculate the geometric moments of regions.
Signature
Herror moments_region_2nd (const Hobject Regions , double* M11 , double* M20 , double* M02 , double* Ia , double* Ib )
Herror T_moments_region_2nd (const Hobject Regions , Htuple* M11 , Htuple* M20 , Htuple* M02 , Htuple* Ia , Htuple* Ib )
void MomentsRegion2nd (const HObject& Regions , HTuple* M11 , HTuple* M20 , HTuple* M02 , HTuple* Ia , HTuple* Ib )
HTuple HRegion ::MomentsRegion2nd (HTuple* M20 , HTuple* M02 , HTuple* Ia , HTuple* Ib ) const
double HRegion ::MomentsRegion2nd (double* M20 , double* M02 , double* Ia , double* Ib ) const
static void HOperatorSet .MomentsRegion2nd (HObject regions , out HTuple m11 , out HTuple m20 , out HTuple m02 , out HTuple ia , out HTuple ib )
HTuple HRegion .MomentsRegion2nd (out HTuple m20 , out HTuple m02 , out HTuple ia , out HTuple ib )
double HRegion .MomentsRegion2nd (out double m20 , out double m02 , out double ia , out double ib )
def moments_region_2nd (regions : HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
def moments_region_2nd_s (regions : HObject) -> Tuple[float, float, float, float, float]
Description
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd
calculates the geometric
moments M11 M11 M11 M11 m11 m11
, M20 M20 M20 M20 m20 m20
and M02 M02 M02 M02 m02 m02
of the input
regions in Regions Regions Regions Regions regions regions
. Furthermore the major and minor axis
of the input regions are calculated and returned in Ia Ia Ia Ia ia ia
and Ib Ib Ib Ib ib ib
.
The covariance matrix is given by:
The row-dependent moment of 2nd order is returned in M20 M20 M20 M20 m20 m20
and the column-dependent moment of 2nd order is returned in M02 M02 M02 M02 m02 m02
.
The moment M11 M11 M11 M11 m11 m11
represents the covariance between
the row and column coordinates of the region points.
Calculation:
and
are the coordinates
of the center of gravity of a region R.
Then the moments
are defined by:
wherein r and c run over all pixels of the region R.
Furthermore the length of the major and minor axes are defined by:
wherein
is defined by:
The equation for the major and minor axes can be derived from the definition
of the moments by diagonalizing the covariance matrix and reforming the resulting
formula.
If more than one region is passed, the results are returned in tuples.
The index of a tuple element corresponds to the index of the respective
input region.
If an empty region is passed, 0.0 is returned for all parameters, 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
Input regions.
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 (row-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).
Ia Ia Ia Ia ia ia
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Length of the major axis of the input region.
Ib Ib Ib Ib ib ib
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Length of the minor axis of the input region.
Complexity
If F is the area of the region the mean runtime
complexity is O(sqrt(F)).
Result
The operator moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd
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 (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_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar MomentsRegion2ndInvar moments_region_2nd_invar
See also
elliptic_axis elliptic_axis EllipticAxis EllipticAxis EllipticAxis elliptic_axis
References
R. Haralick, L. Shapiro
“Computer and Robot Vision”
Addison-Wesley, 1992, pp. 73-75
Module
Foundation