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

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

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