complementcomplementComplementComplementcomplement (Operator)

Name

complementcomplementComplementComplementcomplement — Berechnen des Komplements einer Region.

Signatur

complement(Region : RegionComplement : : )

Herror complement(const Hobject Region, Hobject* RegionComplement)

Herror T_complement(const Hobject Region, Hobject* RegionComplement)

void Complement(const HObject& Region, HObject* RegionComplement)

HRegion HRegion::Complement() const

static void HOperatorSet.Complement(HObject region, out HObject regionComplement)

HRegion HRegion.Complement()

def complement(region: HObject) -> HObject

Beschreibung

complementcomplementComplementComplementcomplement berechnet das Komplement der eingegebenen Region(en).

Wenn das Systemflag 'clip_region'"clip_region""clip_region""clip_region""clip_region" auf '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_dbResetObjDbResetObjDbreset_obj_db) und der Region berechnet.

Wenn das Systemflag 'clip_region'"clip_region""clip_region""clip_region""clip_region" auf 'false'"false""false""false""false" steht (siehe set_systemset_systemSetSystemSetSystemset_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 RegionRegionRegionregionregion auf TRUE gesetzt. Für die Berechnung von Folgeoperationen werden dann die Gesetze von de Morgan verwendet. Sinnvoll ist die Ausführung von complementcomplementComplementComplementcomplement mit dem Systemflag auf '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"='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" und nach Anwendung von complementcomplementComplementComplementcomplement wieder auf 'false'"false""false""false""false" zu setzen, da ansonsten negative Regionen aus Folgeoperationen resultieren können

Ausführungsinformationen

Parameter

RegionRegionRegionregionregion (input_object)  region(-array) objectHRegionHObjectHObjectHobject

Eingaberegion(en).

RegionComplementRegionComplementRegionComplementregionComplementregion_complement (output_object)  region(-array) objectHRegionHObjectHObjectHobject *

Berechnete Komplement(e).

Parameteranzahl: RegionComplement == Region

Ergebnis

complementcomplementComplementComplementcomplement 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>)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>)set_system("empty_region_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

thresholdthresholdThresholdThresholdthreshold, connectionconnectionConnectionConnectionconnection, regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing, pouringpouringPouringPouringpouring, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormclass_ndim_norm

Nachfolger

select_shapeselect_shapeSelectShapeSelectShapeselect_shape

Siehe auch

differencedifferenceDifferenceDifferencedifference, union1union1Union1Union1union1, union2union2Union2Union2union2, intersectionintersectionIntersectionIntersectionintersection, reset_obj_dbreset_obj_dbResetObjDbResetObjDbreset_obj_db, set_systemset_systemSetSystemSetSystemset_system

Modul

Foundation