junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton (Operator)
Name
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton
— Berechnen von Kreuzungs- und Endpunkten in einem Skelett.
Signatur
Beschreibung
junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeleton
liefert Kreuzungs- und Endpunkte in einem Skelett
(siehe skeletonskeletonSkeletonSkeletonSkeleton
). Die Kreuzungspunkte in einer der
Eingaberegionen aus RegionRegionRegionRegionregion
werden als Region in
JuncPointsJuncPointsJuncPointsJuncPointsjuncPoints
, die Endpunkte entsprechend als Region in
EndPointsEndPointsEndPointsEndPointsendPoints
gespeichert.
Damit junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeleton
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_skeletonMorphSkeletonMorphSkeletonMorphSkeleton
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) →
objectHRegionHRegionHobject
Die Skelette.
EndPointsEndPointsEndPointsEndPointsendPoints
(output_object) region(-array) →
objectHRegionHRegionHobject *
Endpunkte.
Parameteranzahl: EndPoints == Region
JuncPointsJuncPointsJuncPointsJuncPointsjuncPoints
(output_object) region(-array) →
objectHRegionHRegionHobject *
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_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeleton
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>)SetSystem("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>)
,
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">)SetSystem("store_empty_region",<"true"/"false">)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
skeletonskeletonSkeletonSkeletonSkeleton
Nachfolger
area_centerarea_centerAreaCenterAreaCenterAreaCenter
,
connectionconnectionConnectionConnectionConnection
,
get_region_pointsget_region_pointsGetRegionPointsGetRegionPointsGetRegionPoints
,
differencedifferenceDifferenceDifferenceDifference
Siehe auch
pruningpruningPruningPruningPruning
,
split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegionSplitSkeletonRegion
Modul
Foundation