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_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton liefert Kreuzungs- und Endpunkte in einem Skelett
(siehe skeletonskeletonSkeletonSkeletonSkeletonskeleton). Die Kreuzungspunkte in einer der
Eingaberegionen aus RegionRegionRegionRegionregionregion werden als Region in
JuncPointsJuncPointsJuncPointsJuncPointsjuncPointsjunc_points, die Endpunkte entsprechend als Region in
EndPointsEndPointsEndPointsEndPointsendPointsend_points gespeichert.
Damit junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton sinnvolle Ergebnisse liefert sollte
RegionRegionRegionRegionregionregion keine Linien enthalten, die breiter als ein Pixel sind.
Die von skeletonskeletonSkeletonSkeletonSkeletonskeleton erzeugten Regionen erfüllen diese Eigenschaft,
während die von morph_skeletonmorph_skeletonMorphSkeletonMorphSkeletonMorphSkeletonmorph_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
RegionRegionRegionRegionregionregion (input_object) region(-array) → objectHRegionHObjectHRegionHobject
Die Skelette.
EndPointsEndPointsEndPointsEndPointsendPointsend_points (output_object) region(-array) → objectHRegionHObjectHRegionHobject *
Endpunkte.
Parameteranzahl: EndPoints == Region
JuncPointsJuncPointsJuncPointsJuncPointsjuncPointsjunc_points (output_object) region(-array) → objectHRegionHObjectHRegionHobject *
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)
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_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton liefert normalerweise den Wert 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>)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>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>),
das bei leerer Ergebnisregion mit
set_system('store_empty_region',<'2 (H_MSG_TRUE)'/'3 (H_MSG_FALSE)'>)set_system("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)SetSystem("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)set_system("store_empty_region",<"2 (H_MSG_TRUE)"/"3 (H_MSG_FALSE)">)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
skeletonskeletonSkeletonSkeletonSkeletonskeleton
Nachfolger
area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center,
connectionconnectionConnectionConnectionConnectionconnection,
get_region_pointsget_region_pointsGetRegionPointsGetRegionPointsGetRegionPointsget_region_points,
differencedifferenceDifferenceDifferenceDifferencedifference
Siehe auch
pruningpruningPruningPruningPruningpruning,
split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegionSplitSkeletonRegionsplit_skeleton_region
Modul
Foundation