Name
junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton — Berechnen von Kreuzungs- und Endpunkten in einem Skelett.
junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton liefert Kreuzungs- und Endpunkte in einem Skelett
(siehe skeletonskeletonSkeletonskeletonSkeletonSkeleton). Die Kreuzungspunkte in einer der
Eingaberegionen aus RegionRegionRegionRegionRegionregion werden als Region in
JuncPointsJuncPointsJuncPointsJuncPointsJuncPointsjuncPoints, die Endpunkte entsprechend als Region in
EndPointsEndPointsEndPointsEndPointsEndPointsendPoints gespeichert.
Damit junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton 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_skeletonMorphSkeletonmorph_skeletonMorphSkeletonMorphSkeleton erzeugten Regionen dies im
Allgemeinen nicht tun.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Endpunkte.
Parameteranzahl: EndPoints == Region
Kreuzungspunkte.
Parameteranzahl: JuncPoints == Region
* 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)
/* non-connected branches of a skeleton */
skeleton(Region,&Skeleton);
junctions_skeleton(Skeleton,&EPoints,&JPoints);
difference(Skeleton,JPoints,&Rows);
connection(Rows,&Parts);
* 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)
* 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)
* 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)
* 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)
Sei F die Fläche der Eingaberegion, dann ist die
Laufzeitkomplexität: O(F).
junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton 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>)set_system("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>)set_system("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">)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
skeletonskeletonSkeletonskeletonSkeletonSkeleton
area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter,
connectionconnectionConnectionconnectionConnectionConnection,
get_region_pointsget_region_pointsGetRegionPointsget_region_pointsGetRegionPointsGetRegionPoints,
differencedifferenceDifferencedifferenceDifferenceDifference
pruningpruningPruningpruningPruningPruning,
split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegion
Foundation