ClassesClassesClassesClasses | | | | Operators

compactnesscompactnessCompactnesscompactnessCompactnessCompactness (Operator)


compactnesscompactnessCompactnesscompactnessCompactnessCompactness — Shape factor for the compactness of a region.


compactness(Regions : : : Compactness)

Herror compactness(const Hobject Regions, double* Compactness)

Herror T_compactness(const Hobject Regions, Htuple* Compactness)

Herror compactness(Hobject Regions, double* Compactness)

Herror compactness(Hobject Regions, HTuple* Compactness)

double HRegion::Compactness() const

HTuple HRegionArray::Compactness() const

void Compactness(const HObject& Regions, HTuple* Compactness)

HTuple HRegion::Compactness() const

void HOperatorSetX.Compactness(
[in] IHUntypedObjectX* Regions, [out] VARIANT* Compactness)

VARIANT HRegionX.Compactness()

static void HOperatorSet.Compactness(HObject regions, out HTuple compactness)

HTuple HRegion.Compactness()


The operator compactnesscompactnessCompactnesscompactnessCompactnessCompactness calculates the compactness of the input regions.


If L is the length of the contour (see contlengthcontlengthContlengthcontlengthContlengthContlength) and F the area of the region the shape factor C is defined as:

C = max(1,C')

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

The shape factor C of a circle is 1. If the region is long or has holes C is larger than 1. The operator compactnesscompactnessCompactnesscompactnessCompactnessCompactness responds to the course of the contour (roughness) and to holes. The value of C is clipped to 1.0, because the pixel area of a region can only be an approximation of a real circle's area. This approximation error is bigger for small regions than for large regions.

In case of an empty region the operator compactnesscompactnessCompactnesscompactnessCompactnessCompactness returns the value 0 if no other behavior was set (see set_systemset_systemSetSystemset_systemSetSystemSetSystem). If more than one region is passed the numerical values of the shape factor are stored in a tuple, the position of a value in the tuple corresponding to the position of the region in the input tuple.



RegionsRegionsRegionsRegionsRegionsregions (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Region(s) to be examined.

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

Compactness of the input region(s).

Assertion: Compactness >= 1.0 || Compactness == 0


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


convexityconvexityConvexityconvexityConvexityConvexity, eccentricityeccentricityEccentricityeccentricityEccentricityEccentricity

See also

contlengthcontlengthContlengthcontlengthContlengthContlength, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter, select_shapeselect_shapeSelectShapeselect_shapeSelectShapeSelectShape



ClassesClassesClassesClasses | | | | Operators