KlassenKlassenKlassenKlassen | | | | Operatoren

junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton (Operator)

Name

junctions_skeletonjunctions_skeletonJunctionsSkeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeleton — Berechnen von Kreuzungs- und Endpunkten in einem Skelett.

Signatur

junctions_skeleton(Region : EndPoints, JuncPoints : : )

Herror junctions_skeleton(const Hobject Region, Hobject* EndPoints, Hobject* JuncPoints)

Herror T_junctions_skeleton(const Hobject Region, Hobject* EndPoints, Hobject* JuncPoints)

Herror junctions_skeleton(Hobject Region, Hobject* EndPoints, Hobject* JuncPoints)

HRegion HRegion::JunctionsSkeleton(HRegion* JuncPoints) const

HRegionArray HRegionArray::JunctionsSkeleton(HRegionArray* JuncPoints) const

void JunctionsSkeleton(const HObject& Region, HObject* EndPoints, HObject* JuncPoints)

HRegion HRegion::JunctionsSkeleton(HRegion* JuncPoints) const

void HOperatorSetX.JunctionsSkeleton(
[in] IHUntypedObjectX* Region, [out] IHUntypedObjectX*EndPoints, [out] IHUntypedObjectX*JuncPoints)

IHRegionX* HRegionX.JunctionsSkeleton([out] IHRegionX*JuncPoints)

static void HOperatorSet.JunctionsSkeleton(HObject region, out HObject endPoints, out HObject juncPoints)

HRegion HRegion.JunctionsSkeleton(out HRegion juncPoints)

Beschreibung

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.

Parallelisierung

Parameter

RegionRegionRegionRegionRegionregion (input_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject

Die Skelette.

EndPointsEndPointsEndPointsEndPointsEndPointsendPoints (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Endpunkte.

Parameteranzahl: EndPoints == Region

JuncPointsJuncPointsJuncPointsJuncPointsJuncPointsjuncPoints (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

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)

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_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.

Vorgänger

skeletonskeletonSkeletonskeletonSkeletonSkeleton

Nachfolger

area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter, connectionconnectionConnectionconnectionConnectionConnection, get_region_pointsget_region_pointsGetRegionPointsget_region_pointsGetRegionPointsGetRegionPoints, differencedifferenceDifferencedifferenceDifferenceDifference

Siehe auch

pruningpruningPruningpruningPruningPruning, split_skeleton_regionsplit_skeleton_regionSplitSkeletonRegionsplit_skeleton_regionSplitSkeletonRegionSplitSkeletonRegion

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren