junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton (Operator)
Name
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton — Berechnen von Kreuzungs- und Endpunkten in einem Skelett.
Signatur
def junctions_skeleton(region: HObject) -> Tuple[HObject, HObject]
Beschreibung
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton liefert Kreuzungs- und Endpunkte in einem Skelett
(siehe skeletonskeletonSkeletonSkeletonskeleton). Die Kreuzungspunkte in einer der
Eingaberegionen aus RegionRegionRegionregionregion werden als Region in
JuncPointsJuncPointsJuncPointsjuncPointsjunc_points, die Endpunkte entsprechend als Region in
EndPointsEndPointsEndPointsendPointsend_points gespeichert.
Damit junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton sinnvolle Ergebnisse liefert sollte
RegionRegionRegionregionregion keine Linien enthalten, die breiter als ein Pixel sind.
Die von skeletonskeletonSkeletonSkeletonskeleton erzeugten Regionen erfüllen diese Eigenschaft,
während die von morph_skeletonmorph_skeletonMorphSkeletonMorphSkeletonmorph_skeleton erzeugten Regionen dies im
Allgemeinen nicht tun.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Parameter
RegionRegionRegionregionregion (input_object) region(-array) → objectHRegionHObjectHObjectHobject
Die Skelette.
EndPointsEndPointsEndPointsendPointsend_points (output_object) region(-array) → objectHRegionHObjectHObjectHobject *
Endpunkte.
Parameteranzahl:
EndPoints == Region
JuncPointsJuncPointsJuncPointsjuncPointsjunc_points (output_object) region(-array) → objectHRegionHObjectHObjectHobject *
Kreuzungspunkte.
Parameteranzahl:
JuncPoints == Region
Beispiel (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)
Beispiel (C)
/* non-connected branches of a skeleton */
skeleton(Region,&Skeleton);
junctions_skeleton(Skeleton,&EPoints,&JPoints);
difference(Skeleton,JPoints,&Rows);
connection(Rows,&Parts);
Beispiel (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)
Beispiel (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)
Komplexität
Sei F die Fläche der Eingaberegion, dann ist die
Laufzeitkomplexität: O(F).
Ergebnis
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton liefert normalerweise den Wert 2 (
H_MSG_TRUE)
. Das Verhalten
bei leerer Eingabe (keine Eingaberegionen vorhanden) lässt sich
mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>),
das bei leerer Region mit
set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>),
das bei leerer Ergebnisregion mit
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">)set_system("store_empty_region",<"true"/"false">)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
skeletonskeletonSkeletonSkeletonskeleton
Nachfolger
area_centerarea_centerAreaCenterAreaCenterarea_center,
connectionconnectionConnectionConnectionconnection,
get_region_pointsget_region_pointsGetRegionPointsGetRegionPointsget_region_points,
differencedifferenceDifferenceDifferencedifference
Siehe auch
pruningpruningPruningPruningpruning,
split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegionsplit_skeleton_region
Modul
Foundation