Name
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton — Find junctions and end points in a skeleton.
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeleton detects junctions and end points in a skeleton (see
skeletonskeletonSkeletonSkeletonSkeleton). The junctions in the input region
RegionRegionRegionRegionregion are output as a region in JuncPointsJuncPointsJuncPointsJuncPointsjuncPoints,
while the end points are output as a region in EndPointsEndPointsEndPointsEndPointsendPoints.
To obtain reasonable results with junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeleton the input
region RegionRegionRegionRegionregion must not contain lines which are more than one
pixel wide. Regions obtained by skeletonskeletonSkeletonSkeletonSkeleton meet this condition,
while regions obtained by morph_skeletonmorph_skeletonMorphSkeletonMorphSkeletonMorphSkeleton do not meet this
condition in general.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
Extracted end points.
Number of elements: EndPoints == Region
Extracted junctions.
Number of elements: JuncPoints == Region
* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(S,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)
/* non-connected branches of a skeleton */
skeleton(Region,&Skeleton) ;
junctions_skeleton(Skeleton,&EPoints,&JPoints) ;
difference(S,JPoints,&Rows) ;
connection(Rows,&Parts) ;
* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(S,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)
* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(S,JPoints,Rows)
set_system('neighborhood',4)
connection(Rows,Parts)
* non-connected branches of a skeleton
skeleton(Region,Skeleton)
junctions_skeleton(Skeleton,EPoints,JPoints)
difference(S,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_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeleton always returns the value 2 (H_MSG_TRUE). The behavior in
case of empty input (no regions given) can be set via
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>),
the behavior in case of an empty input region via
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>),
and the behavior in case of an empty result region via
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">).
If necessary, an exception is raised.
skeletonskeletonSkeletonSkeletonSkeleton
area_centerarea_centerAreaCenterAreaCenterAreaCenter,
connectionconnectionConnectionConnectionConnection,
get_region_pointsget_region_pointsGetRegionPointsGetRegionPointsGetRegionPoints,
differencedifferenceDifferenceDifferenceDifference
pruningpruningPruningPruningPruning,
split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegionSplitSkeletonRegion
Foundation