Herror ::moments_region_2nd_invar (
    Hobject Regions,
    double *M11,
    double *M20,
    double *M02
)
Herror ::moments_region_2nd_invar (
    Hobject Regions,
    HTuple *M11,
    HTuple *M20,
    HTuple *M02
)
double HRegion::MomentsRegion2ndInvar (
    double *M20,
    double *M02
) const
HTuple HRegionArray::MomentsRegion2ndInvar (
    HTuple *M20,
    HTuple *M02
) const

Geometric moments of regions.

The operator ::moments_region_2nd_invar calculates the scaled moments (M20, M02) and the procut of inertia of the axes through the center parallel to the coordinate axes (M11).

Calculation: Z0 and S0 are the coordinates of the
            center of a region R with the area F.
            Then the moments Mij are defined by:

                    Mij = 1/F^2 * SUMME ( (Z0 - Z)^i (S0 - S)^j ),

            wherein Z and S run throug 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).


Parameters

Regions (input_object)
region(-array) -> Hobject: HRegion(Array)
Regions to be examined.

M11 (output_control)
real(-array) -> (HTuple.) double *
Product of inertia of the axes through the center parallel to the coordinate axes.

M20 (output_control)
real(-array) -> (HTuple.) double *
Moment of 2nd order (line-dependent).

M02 (output_control)
real(-array) -> (HTuple.) double *
Moment of 2nd order (column-dependent).


Complexity

If F is the area of the region the mean runtime complexity is O(F).


Result

The operator ::moments_region_2nd_invar returns the value 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>). The behavior in case of empty region (the region is the empty set) is set via ::set_system('empty_region_result',<Result>). If necessary an exception handling is raised.


Possible Predecessors

::threshold, ::regiongrowing, ::connection


Alternatives

::moments_region_2nd


See also

::elliptic_axis


Module

Region processing



Copyright © 1996-2002 MVTec Software GmbH