complementcomplementComplementComplementcomplement (Operator)
Name
complementcomplementComplementComplementcomplement — Berechnen des Komplements einer Region.
Signatur
def complement(region: HObject) -> HObject
Beschreibung
complementcomplementComplementComplementComplementcomplement berechnet das Komplement der eingegebenen
Region(en).
Wenn das Systemflag 'clip_region'"clip_region""clip_region""clip_region""clip_region""clip_region" auf 'true'"true""true""true""true""true"
gesetzt ist, was der Normalfall ist, wird die Differenz aus dem
größten aktuellen Bild (siehe reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDbreset_obj_db) und der Region
berechnet.
Wenn das Systemflag 'clip_region'"clip_region""clip_region""clip_region""clip_region""clip_region" auf 'false'"false""false""false""false""false"
steht (siehe set_systemset_systemSetSystemSetSystemSetSystemset_system), würde die resultierende Region
unendlich groß werden. Um dies zu verhindern, wird das Komplement nur
virtuell ausgeführt, d.h., es wird der Eintrag (Flag) für das
Komplement in RegionRegionRegionRegionregionregion auf TRUE gesetzt. Für die Berechnung von
Folgeoperationen werden dann die Gesetze von de Morgan verwendet.
Sinnvoll ist die Ausführung von complementcomplementComplementComplementComplementcomplement mit dem
Systemflag auf 'false'"false""false""false""false""false" nur zur Vermeidung von
Randeffekten, z.B., wenn der zu bearbeitende Ausschnitt über die
Bildgröße hinausgeht oder wenn er kleiner als die
Bildgröße ist. In letzterem Fall müsste dann das gewünschte
Clipping explizit gesetzt werden. Hat man keinen Grund, den Operator
mit 'clip_region'"clip_region""clip_region""clip_region""clip_region""clip_region"='false'"false""false""false""false""false" aufzurufen,
braucht diese Einstellung aber für andere Operationen, empfiehlt es
sich, das Systemflag kurzzeitig auf 'true'"true""true""true""true""true" und nach Anwendung
von complementcomplementComplementComplementComplementcomplement wieder auf 'false'"false""false""false""false""false" zu setzen, da ansonsten
negative Regionen aus Folgeoperationen resultieren können
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
Eingaberegion(en).
RegionComplementRegionComplementRegionComplementRegionComplementregionComplementregion_complement (output_object) region(-array) → objectHRegionHObjectHRegionHobject *
Berechnete Komplement(e).
Parameteranzahl: RegionComplement == Region
Ergebnis
complementcomplementComplementComplementComplementcomplement 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>)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>) festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
thresholdthresholdThresholdThresholdThresholdthreshold,
connectionconnectionConnectionConnectionConnectionconnection,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing,
pouringpouringPouringPouringPouringpouring,
class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm
Nachfolger
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape
Siehe auch
differencedifferenceDifferenceDifferenceDifferencedifference,
union1union1Union1Union1Union1union1,
union2union2Union2Union2Union2union2,
intersectionintersectionIntersectionIntersectionIntersectionintersection,
reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDbreset_obj_db,
set_systemset_systemSetSystemSetSystemSetSystemset_system
Modul
Foundation