closing_circleclosing_circleClosingCircleClosingCircleclosing_circle闭圆(算子)
名称
closing_circleclosing_circleClosingCircleClosingCircleclosing_circle — 用圆形结构元素关闭一个区域。
签名
def closing_circle(region: HObject, radius: Union[float, int]) -> HObject
描述
closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 的运作原理与
closingclosingClosingClosingClosingclosing 类似,即区域边界经过平滑处理,且区域内小于半径 RadiusRadiusRadiusRadiusradiusradius 的圆形结构元素的孔洞会被闭合。closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 操作定义为先进行膨胀处理,随后执行明可夫斯基减法,两者均采用相同的圆形结构元素。
注意
closing_circleclosing_circleClosingCircleClosingCircleClosingCircleclosing_circle 对每个输入区域分别应用。若要消除不同区域之间的间隙,必须先调用 union1union1Union1Union1Union1union1 或 union2union2Union2Union2Union2union2。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在元组级别上自动并行化。
参数
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)。当输入区域为空或不存在时,其行为可通过以下方式设置:
-
无区域:
set_system('no_object_result',<RegionResult>)set_system("no_object_result",<RegionResult>)SetSystem("no_object_result",<RegionResult>)SetSystem("no_object_result",<RegionResult>)SetSystem("no_object_result",<RegionResult>)set_system("no_object_result",<RegionResult>)
-
空区域:
set_system('empty_region_result',<RegionResult>)set_system("empty_region_result",<RegionResult>)SetSystem("empty_region_result",<RegionResult>)SetSystem("empty_region_result",<RegionResult>)SetSystem("empty_region_result",<RegionResult>)set_system("empty_region_result",<RegionResult>)
否则,将抛出异常。
可能的前趋
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
模块
基础