ClassesClassesClassesClasses | | | | Operators

eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity (Operator)

Name

eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity — Shape features derived from the ellipse parameters.

Signature

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)

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

Herror eccentricity(Hobject Regions, HTuple* Anisometry, HTuple* Bulkiness, HTuple* StructureFactor)

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

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

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

void HOperatorSetX.Eccentricity(
[in] IHUntypedObjectX* Regions, [out] VARIANT* Anisometry, [out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

VARIANT HRegionX.Eccentricity(
[out] VARIANT* Bulkiness, [out] VARIANT* StructureFactor)

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)

Description

The operator eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity calculates the three shape features AnisometryAnisometryAnisometryAnisometryAnisometryanisometry, BulkinessBulkinessBulkinessBulkinessBulkinessbulkiness, and StructureFactorStructureFactorStructureFactorStructureFactorStructureFactorstructureFactor for the given RegionsRegionsRegionsRegionsRegionsregions:

   AnisometryAnisometryAnisometryAnisometryAnisometryanisometry = Ra / Rb

   BulkinessBulkinessBulkinessBulkinessBulkinessbulkiness = pi Ra Rb / A

   StructureFactorStructureFactorStructureFactorStructureFactorStructureFactorstructureFactor = AnisometryAnisometryAnisometryAnisometryAnisometryanisometry * BulkinessBulkinessBulkinessBulkinessBulkinessbulkiness - 1

where Ra and Rb denote the ellipse radii (see elliptic_axiselliptic_axisEllipticAxiselliptic_axisEllipticAxisEllipticAxis) and A denotes the area of the region (see area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter).

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

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_axisEllipticAxiselliptic_axisEllipticAxisEllipticAxis). This can lead to non-empty regions that have RbRbRbRbRbrb = 0. In these cases, the output features that require a division by RbRbRbRbRbrb 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.

Parallelization

Parameters

RegionsRegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Region(s) to be examined.

AnisometryAnisometryAnisometryAnisometryAnisometryanisometry (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

Assertion: Anisometry >= 1.0

BulkinessBulkinessBulkinessBulkinessBulkinessbulkiness (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Calculated shape feature.

StructureFactorStructureFactorStructureFactorStructureFactorStructureFactorstructureFactor (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity 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 (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>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>). If necessary an exception is raised.

Possible Predecessors

thresholdthresholdThresholdthresholdThresholdThreshold, regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing, connectionconnectionConnectionconnectionConnectionConnection

See also

elliptic_axiselliptic_axisEllipticAxiselliptic_axisEllipticAxisEllipticAxis, moments_region_2ndmoments_region_2ndMomentsRegion2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2nd, select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter

Module

Foundation


ClassesClassesClassesClasses | | | | Operators