eccentricityeccentricityEccentricityEccentricity (Operator)


eccentricityeccentricityEccentricityEccentricity — Shape features derived from the ellipse parameters.


eccentricity(Regions : : : Anisometry, Bulkiness, StructureFactor)

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)


The operator eccentricityeccentricityEccentricityEccentricityEccentricity calculates the three shape features AnisometryAnisometryAnisometryAnisometryanisometry, BulkinessBulkinessBulkinessBulkinessbulkiness, and StructureFactorStructureFactorStructureFactorStructureFactorstructureFactor for the given RegionsRegionsRegionsRegionsregions: where Ra and Rb denote the ellipse radii (see elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxis) and A denotes the area of the region (see area_centerarea_centerAreaCenterAreaCenterAreaCenter).

In the documentation of this chapter (Regions / Features), you can find an image illustrating regions which vary in their anisometry, bulkiness and structur 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_systemSetSystemSetSystemSetSystem).


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


RegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHobject

Region(s) to be examined.

AnisometryAnisometryAnisometryAnisometryanisometry (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

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

Assertion: Anisometry >= 1.0

BulkinessBulkinessBulkinessBulkinessbulkiness (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Calculated shape feature.

StructureFactorStructureFactorStructureFactorStructureFactorstructureFactor (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Calculated shape feature.


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


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>)SetSystem("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>)SetSystem("empty_region_result",<Result>). If necessary an exception is raised.

Possible Predecessors

thresholdthresholdThresholdThresholdThreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing, connectionconnectionConnectionConnectionConnection

See also

elliptic_axiselliptic_axisEllipticAxisEllipticAxisEllipticAxis, moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2nd, select_shapeselect_shapeSelectShapeSelectShapeSelectShape, area_centerarea_centerAreaCenterAreaCenterAreaCenter