compactnesscompactnessCompactnessCompactnesscompactness紧凑性(算子)

名称

compactnesscompactnessCompactnessCompactnesscompactness — 区域紧凑性的形状因子。

签名

compactness(Regions : : : Compactness)

Herror compactness(const Hobject Regions, double* Compactness)

Herror T_compactness(const Hobject Regions, Htuple* Compactness)

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

HTuple HRegion::Compactness() const

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

HTuple HRegion.Compactness()

def compactness(regions: HObject) -> Sequence[float]

def compactness_s(regions: HObject) -> float

描述

算子 compactnesscompactnessCompactnessCompactnessCompactnesscompactness 计算输入区域的紧凑性。

计算:

若 L 为轮廓线长度(参见 contlengthcontlengthContlengthContlengthContlengthcontlength),F 为区域面积,则形状因子 C 定义为:

C = max(1,C')

在本章(区域 / 特征)的文档中,您可找到一张展示不同紧凑性区域的示意图。

圆的形状因子 C 值为1。若区域细长或存在孔洞,C 值将大于 1。算子 compactnesscompactnessCompactnessCompactnessCompactnesscompactness 响应轮廓走向(粗糙度)及孔洞特征。C 值被限制在 1.0 范围内,因为区域的像素面积仅能近似真实圆的面积。这种近似误差在小区域中比在大区域中更为显著。

若区域为空,且未设置其他行为(参见 set_systemset_systemSetSystemSetSystemSetSystemset_system),则算子 compactnesscompactnessCompactnessCompactnessCompactnesscompactness 返回值 0。若传递多个区域,形状因子的数值将存储于元组中,元组中数值的位置对应于输入元组中区域的位置。

执行信息

参数

RegionsRegionsRegionsRegionsregionsregions (输入对象)  region(-array) objectHRegionHObjectHRegionHobject

待检查的区域。

CompactnessCompactnessCompactnessCompactnesscompactnesscompactness (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

输入区域的紧凑性。

断言: Compactness >= 1.0 || Compactness == 0

结果

算子 compactnesscompactnessCompactnessCompactnessCompactnesscompactness 在输入不为空时返回值 2 (H_MSG_TRUE)。当输入为空(无可用输入区域)时,可设置行为通过算子 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>)set_system("no_object_result",<Result>)。当空区域(区域是空集)时,可设置行为通过算子 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>)set_system("empty_region_result",<Result>)。如有必要,则抛出异常。

可能的前趋

thresholdthresholdThresholdThresholdThresholdthreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, connectionconnectionConnectionConnectionConnectionconnection

替代

convexityconvexityConvexityConvexityConvexityconvexity, eccentricityeccentricityEccentricityEccentricityEccentricityeccentricity

另见

contlengthcontlengthContlengthContlengthContlengthcontlength, area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center, select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape

模块

基础