shape_transshape_transShapeTransShapeTransshape_trans (Operator)
Name
shape_transshape_transShapeTransShapeTransshape_trans — Transformieren der Form von Regionen.
Signatur
def shape_trans(region: HObject, type: str) -> HObject
Beschreibung
shape_transshape_transShapeTransShapeTransshape_trans dient zur Transformation der Form von
Regionen in Abhängigkeit von TypeTypeTypetypetype:
- 'convex'"convex""convex""convex""convex"
Konvexe Hülle.
- 'ellipse'"ellipse""ellipse""ellipse""ellipse"
Ellipse mit den gleichen Momenten und Fläche wie die
Eingaberegion
- 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle"
Kleinster umschließender Kreis.
- 'inner_circle'"inner_circle""inner_circle""inner_circle""inner_circle"
Größter Inkreis.
- 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1"
Kleinstes umschließendes Rechteck parallel zu den Koordinatenachsen.
- 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2"
Kleinstes umschließendes Rechteck.
- 'inner_rectangle1'"inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1"
Größtes enthaltenes achsenparalleles Rechteck.
- 'inner_center'"inner_center""inner_center""inner_center""inner_center"
Liefert als Ausgaberegion den Punkt auf dem Skelett der
Eingaberegion, der am nächsten zum Schwerpunkt der Eingaberegion
liegt.
Achtung
Für den Fall TypeTypeTypetypetype = 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle" ist zu
beachten, dass die zurückgegebene Kreisregion die ursprüngliche
Region in manchen Fällen nicht komplett beinhaltet. Dies liegt
daran, dass intern die Operatoren smallest_circlesmallest_circleSmallestCircleSmallestCirclesmallest_circle und
gen_circlegen_circleGenCircleGenCirclegen_circle aufgerufen werden. Wie in der Dokumentation von
smallest_circlesmallest_circleSmallestCircleSmallestCirclesmallest_circle beschrieben, kann der berechnete Radius bis
zu Pixel zu klein
sein. Zusätzlich kommt hinzu, dass der mit gen_circlegen_circleGenCircleGenCirclegen_circle
generierte Kreis bis zu 0.5 Pixel in beide Richtungen also um
maximal Pixel verschoben wird. Insgesamt
kann die ursprüngliche Region also um bis zu 1 Pixel über die
zurückgegebene Kreisregion hinausragen.
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
Regionen, die transformiert werden.
RegionTransRegionTransRegionTransregionTransregion_trans (output_object) region(-array) → objectHRegionHObjectHObjectHobject *
Transformierte Regionen.
TypeTypeTypetypetype (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Art der Transformation.
Default:
'convex'
"convex"
"convex"
"convex"
"convex"
Werteliste:
'convex'"convex""convex""convex""convex", 'ellipse'"ellipse""ellipse""ellipse""ellipse", 'inner_center'"inner_center""inner_center""inner_center""inner_center", 'inner_circle'"inner_circle""inner_circle""inner_circle""inner_circle", 'inner_rectangle1'"inner_rectangle1""inner_rectangle1""inner_rectangle1""inner_rectangle1", 'outer_circle'"outer_circle""outer_circle""outer_circle""outer_circle", 'rectangle1'"rectangle1""rectangle1""rectangle1""rectangle1", 'rectangle2'"rectangle2""rectangle2""rectangle2""rectangle2"
Komplexität
Sei F die Fläche einer Eingaberegion, dann ist die
Laufzeitkomplexität O(F).
Ergebnis
shape_transshape_transShapeTransShapeTransshape_trans liefert den Wert 2 (
H_MSG_TRUE)
, falls die
Parameterwerte korrekt sind. 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>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
connectionconnectionConnectionConnectionconnection,
regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing
Nachfolger
disp_regiondisp_regionDispRegionDispRegiondisp_region,
regiongrowing_meanregiongrowing_meanRegiongrowingMeanRegiongrowingMeanregiongrowing_mean,
area_centerarea_centerAreaCenterAreaCenterarea_center
Siehe auch
convexityconvexityConvexityConvexityconvexity,
elliptic_axiselliptic_axisEllipticAxisEllipticAxiselliptic_axis,
area_centerarea_centerAreaCenterAreaCenterarea_center,
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1,
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2,
inner_rectangle1inner_rectangle1InnerRectangle1InnerRectangle1inner_rectangle1,
set_shapeset_shapeSetShapeSetShapeset_shape,
select_shapeselect_shapeSelectShapeSelectShapeselect_shape,
inner_circleinner_circleInnerCircleInnerCircleinner_circle
Modul
Foundation