Operator Reference

moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar (Operator)

moments_region_2nd_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar — Geometric moments of regions.

Signature

moments_region_2nd_invar(Regions : : : M11, M20, M02)

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)

void MomentsRegion2ndInvar(const HObject& Regions, HTuple* M11, HTuple* M20, HTuple* M02)

HTuple HRegion::MomentsRegion2ndInvar(HTuple* M20, HTuple* M02) const

double HRegion::MomentsRegion2ndInvar(double* M20, double* M02) const

static void HOperatorSet.MomentsRegion2ndInvar(HObject regions, out HTuple m11, out HTuple m20, out HTuple m02)

HTuple HRegion.MomentsRegion2ndInvar(out HTuple m20, out HTuple m02)

double HRegion.MomentsRegion2ndInvar(out double m20, out double 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_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_region_2nd_invar calculates the scaled moments (M20M20M20m20m20, M02M02M02m02m02) and the product of inertia of the axes through the center parallel to the coordinate axes (M11M11M11m11m11).

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_systemset_systemSetSystemSetSystemset_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

RegionsRegionsRegionsregionsregions (input_object)  region(-array) objectHRegionHObjectHObjectHobject

Regions to be examined.

M11M11M11m11m11 (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Product of inertia of the axes through the center parallel to the coordinate axes.

M20M20M20m20m20 (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Moment of 2nd order (line-dependent).

M02M02M02m02m02 (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (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_invarmoments_region_2nd_invarMomentsRegion2ndInvarMomentsRegion2ndInvarmoments_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>)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>)set_system("empty_region_result",<Result>). If necessary an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdthreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing, connectionconnectionConnectionConnectionconnection

Alternatives

moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd

See also

elliptic_axiselliptic_axisEllipticAxisEllipticAxiselliptic_axis

Module

Foundation