closing_circleclosing_circleClosingCircleClosingCircleclosing_circle闭圆(算子)

名称

closing_circleclosing_circleClosingCircleClosingCircleclosing_circle — 用圆形结构元素关闭一个区域。

签名

closing_circle(Region : RegionClosing : Radius : )

Herror closing_circle(const Hobject Region, Hobject* RegionClosing, double Radius)

Herror T_closing_circle(const Hobject Region, Hobject* RegionClosing, const Htuple Radius)

void ClosingCircle(const HObject& Region, HObject* RegionClosing, const HTuple& Radius)

HRegion HRegion::ClosingCircle(const HTuple& Radius) const

HRegion HRegion::ClosingCircle(double Radius) const

static void HOperatorSet.ClosingCircle(HObject region, out HObject regionClosing, HTuple radius)

HRegion HRegion.ClosingCircle(HTuple radius)

HRegion HRegion.ClosingCircle(double radius)

def closing_circle(region: HObject, radius: Union[float, int]) -> HObject

描述

closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 的运作原理与 closingclosingClosingClosingClosingclosing 类似,即区域边界经过平滑处理,且区域内小于半径 RadiusRadiusRadiusRadiusradiusradius 的圆形结构元素的孔洞会被闭合。closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 操作定义为先进行膨胀处理,随后执行明可夫斯基减法,两者均采用相同的圆形结构元素。

注意

closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 对每个输入区域分别应用。若要消除不同区域之间的间隙,必须先调用 union1union1Union1Union1Union1union1union2union2Union2Union2Union2union2

执行信息

参数

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

待关闭的区域。

RegionClosingRegionClosingRegionClosingRegionClosingregionClosingregion_closing (输出对象)  region(-array) objectHRegionHObjectHRegionHobject *

关闭区域。

RadiusRadiusRadiusRadiusradiusradius (输入控制)  real HTupleUnion[float, int]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

圆形结构元素的半径。

默认值: 3.5

建议值: 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 12.5, 15.5, 19.5, 25.5, 33.5, 45.5, 60.5, 110.5

值范围: 0.5 ≤ Radius Radius Radius Radius radius radius ≤ 511.5 (lin)

最小增量: 1.0

建议增量: 1.0

示例(C)

my_closing_circle(Hobject In, double Radius, Hobject *Out)
{
  Hobject  tmp, StructElement;
  gen_circle(StructElement,100.0,100.0,Radius);
  dilation1(In,StructElement,&tmp,1);
  minkowski_sub1(tmp,StructElement,Out,1);
}

复杂度

设 F1 为输入区域的面积。则单个区域的运行时间复杂度为:

结果

closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 在所有参数正确时返回 2 (H_MSG_TRUE)。当输入区域为空或不存在时,其行为可通过以下方式设置:

否则,将抛出异常。

可能的前趋

thresholdthresholdThresholdThresholdThresholdthreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, connectionconnectionConnectionConnectionConnectionconnection, union1union1Union1Union1Union1union1, watershedswatershedsWatershedsWatershedsWatershedswatersheds, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm

可能的后继

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain, select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape, area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center, connectionconnectionConnectionConnectionConnectionconnection

替代

rank_regionrank_regionRankRegionRankRegionRankRegionrank_region, fill_upfill_upFillUpFillUpFillUpfill_up, closingclosingClosingClosingClosingclosing

另见

dilation1dilation1Dilation1Dilation1Dilation1dilation1, minkowski_sub1minkowski_sub1MinkowskiSub1MinkowskiSub1MinkowskiSub1minkowski_sub1, erosion1erosion1Erosion1Erosion1Erosion1erosion1, openingopeningOpeningOpeningOpeningopening

模块

基础