Name
moments_region_2nd moments_region_2nd MomentsRegion2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd — Calculate the geometric moments of regions.
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 )
Herror moments_region_2nd (Hobject Regions , double* M11 , double* M20 , double* M02 , double* Ia , double* Ib )
Herror moments_region_2nd (Hobject Regions , HTuple* M11 , HTuple* M20 , HTuple* M02 , HTuple* Ia , HTuple* Ib )
double HRegion ::MomentsRegion2nd (double* M20 , double* M02 , double* Ia , double* Ib ) const
HTuple HRegionArray ::MomentsRegion2nd (HTuple* M20 , HTuple* M02 , HTuple* Ia , HTuple* Ib ) const
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 )
moments_region_2nd moments_region_2nd MomentsRegion2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd 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 set_system SetSystem SetSystem ).
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on tuple level.
Product of inertia of the axes through the center
parallel to the coordinate axes.
Moment of 2nd order (row-dependent).
Moment of 2nd order (column-dependent).
Ia Ia Ia Ia Ia ia (output_control) real(-array) → HTuple HTuple HTuple VARIANT Htuple (real) (double ) (double ) (double ) (double ) (double )
Length of the major axis of the input region.
Ib Ib Ib Ib Ib ib (output_control) real(-array) → HTuple HTuple HTuple VARIANT Htuple (real) (double ) (double ) (double ) (double ) (double )
Length of the minor axis of the input region.
If F is the area of the region the mean runtime
complexity is O(sqrt(F)).
The operator moments_region_2nd moments_region_2nd MomentsRegion2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd 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>) set_system("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("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>) set_system("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) .
If necessary an exception is raised.
threshold threshold Threshold threshold Threshold Threshold ,
regiongrowing regiongrowing Regiongrowing regiongrowing Regiongrowing Regiongrowing ,
connection connection Connection connection Connection Connection
moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar
elliptic_axis elliptic_axis EllipticAxis elliptic_axis EllipticAxis EllipticAxis
R. Haralick, L. Shapiro
“Computer and Robot Vision”
Addison-Wesley, 1992, pp. 73-75
Foundation