junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton (算子)

名称

junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton — 在骨架中查找交点和端点。

签名

junctions_skeleton(Region : EndPoints, JuncPoints : : )

Herror junctions_skeleton(const Hobject Region, Hobject* EndPoints, Hobject* JuncPoints)

Herror T_junctions_skeleton(const Hobject Region, Hobject* EndPoints, Hobject* JuncPoints)

void JunctionsSkeleton(const HObject& Region, HObject* EndPoints, HObject* JuncPoints)

HRegion HRegion::JunctionsSkeleton(HRegion* JuncPoints) const

static void HOperatorSet.JunctionsSkeleton(HObject region, out HObject endPoints, out HObject juncPoints)

HRegion HRegion.JunctionsSkeleton(out HRegion juncPoints)

def junctions_skeleton(region: HObject) -> Tuple[HObject, HObject]

描述

junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton detects junctions and end points in a skeleton (see skeletonskeletonSkeletonSkeletonSkeletonskeleton). The junctions in the input region RegionRegionRegionRegionregionregion are output as a region in JuncPointsJuncPointsJuncPointsJuncPointsjuncPointsjunc_points, while the end points are output as a region in EndPointsEndPointsEndPointsEndPointsendPointsend_points

To obtain reasonable results with junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton the input region RegionRegionRegionRegionregionregion must not contain lines which are more than one pixel wide. Regions obtained by skeletonskeletonSkeletonSkeletonSkeletonskeleton meet this condition, while regions obtained by morph_skeletonmorph_skeletonMorphSkeletonMorphSkeletonMorphSkeletonmorph_skeleton do not meet this condition in general.

执行信息

参数

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

Input skeletons.

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

Extracted end points.

元素数量: EndPoints == Region

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

Extracted junctions.

元素数量: JuncPoints == Region

示例(HDevelop)

* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(Skeleton,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)

示例(C)

/* non-connected branches of a skeleton */
skeleton(Region,&Skeleton);
junctions_skeleton(Skeleton,&EPoints,&JPoints);
difference(Skeleton,JPoints,&Rows);
connection(Rows,&Parts);

示例(HDevelop)

* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(Skeleton,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)

示例(HDevelop)

* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(Skeleton,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)

示例(HDevelop)

* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(Skeleton,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)

复杂度

Let F be the area of the input region. Then the runtime complexity is O(F).

结果

junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton 始终返回值 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>),以及当结果区域为空时则设置行为通过 set_system('store_empty_region',<'true'/'false'>)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)set_system("store_empty_region",<"true"/"false">)。如有必要,则抛出异常。

可能的前趋

skeletonskeletonSkeletonSkeletonSkeletonskeleton

可能的后继

area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center, connectionconnectionConnectionConnectionConnectionconnection, get_region_pointsget_region_pointsGetRegionPointsGetRegionPointsGetRegionPointsget_region_points, differencedifferenceDifferenceDifferenceDifferencedifference

另见

pruningpruningPruningPruningPruningpruning, split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegionSplitSkeletonRegionsplit_skeleton_region

模块

基础