Operator Reference

eccentricityeccentricityEccentricityEccentricityeccentricity (Operator)

eccentricityeccentricityEccentricityEccentricityeccentricity — Shape features derived from the ellipse parameters.

Signature

Herror eccentricity(const Hobject Regions, double* Anisometry, double* Bulkiness, double* StructureFactor)

Herror T_eccentricity(const Hobject Regions, Htuple* Anisometry, Htuple* Bulkiness, Htuple* StructureFactor)

void Eccentricity(const HObject& Regions, HTuple* Anisometry, HTuple* Bulkiness, HTuple* StructureFactor)

HTuple HRegion::Eccentricity(HTuple* Bulkiness, HTuple* StructureFactor) const

double HRegion::Eccentricity(double* Bulkiness, double* StructureFactor) const

static void HOperatorSet.Eccentricity(HObject regions, out HTuple anisometry, out HTuple bulkiness, out HTuple structureFactor)

HTuple HRegion.Eccentricity(out HTuple bulkiness, out HTuple structureFactor)

double HRegion.Eccentricity(out double bulkiness, out double structureFactor)

def eccentricity(regions: HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]

def eccentricity_s(regions: HObject) -> Tuple[float, float, float]

Description

The operator eccentricityeccentricityEccentricityEccentricityeccentricity calculates the three shape features AnisometryAnisometryAnisometryanisometryanisometry, BulkinessBulkinessBulkinessbulkinessbulkiness, and StructureFactorStructureFactorStructureFactorstructureFactorstructure_factor for the given RegionsRegionsRegionsregionsregions: where Ra and Rb denote the ellipse radii (see elliptic_axiselliptic_axisEllipticAxisEllipticAxiselliptic_axis) and A denotes the area of the region (see area_centerarea_centerAreaCenterAreaCenterarea_center).

In the documentation of this chapter (Regions / Features), you can find an image illustrating regions which vary in their anisometry, bulkiness and structure factor.

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).

Attention

It should be noted that, like for all region-moments-based operators, the region's pixels are regarded as mathematical, infinitely small points that are represented by the center of the pixels (see the documentation of elliptic_axiselliptic_axisEllipticAxisEllipticAxiselliptic_axis). This can lead to non-empty regions that have RbRbRbrbrb = 0. In these cases, the output features that require a division by RbRbRbrbrb are set to 0. In particular, regions that contain a single point or regions whose points lie exactly on a straight line (e.g., one pixel high horizontal regions or one pixel wide vertical regions) have an anisometry of 0.

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

Region(s) to be examined.

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

Shape feature (in case of a circle = 1.0).

Assertion: Anisometry >= 1.0

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

Calculated shape feature.

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

Calculated shape feature.

Complexity

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

Result

The operator eccentricityeccentricityEccentricityEccentricityeccentricity 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

See also

elliptic_axiselliptic_axisEllipticAxisEllipticAxiselliptic_axis, moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndmoments_region_2nd, select_shapeselect_shapeSelectShapeSelectShapeselect_shape, area_centerarea_centerAreaCenterAreaCenterarea_center

Module

Foundation