clear_objclear_objClearObjClearObj (Operator)

Name

clear_objclear_objClearObjClearObj — Löschen von Bildobjekten aus der HALCON-Datenbank.

Signatur

clear_obj(Objects : : : )

Herror clear_obj(const Hobject Objects)

Herror T_clear_obj(const Hobject Objects)

void ClearObj(const HObject& Objects)

static void HOperatorSet.ClearObj(HObject objects)

Beschreibung

clear_objclear_objClearObjClearObjClearObj löscht ikonische Objekte in der Datenbank, die nicht mehr benötigt werden. Es ist zu beachten, dass clear_objclear_objClearObjClearObjClearObj in HALCON/C die einzige Möglichkeit ist, Objekte in der Datenbank zu löschen und damit den Speicherplatz freizugeben. In allen anderen HALCON-Sprachschnittstellen darf clear_objclear_objClearObjClearObjClearObj nicht verwendet werden, da die Objekte automatisch durch geeignete Destruktoren freigegeben werden.

Bildmatrizen und Regionen werden von mehreren Bildobjekten gemeinsam verwendet (Speicherplatz!). Dies hat Konsequenzen für das Löschen: Eine Region oder ein Bild werden erst gelöscht, wenn alle Bildobjekte, die sie verwenden gelöscht wurden.

Mit reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDb kann das System zurückgesetzt und alle verbliebenen Bildobjekte gelöscht werden.

Die in HALCON verfügbaren ikonischen Objekte werden bei der Einleitung zu Kapitel Objekt vorgestellt.

Achtung

Zur Verwendung von lokalen Variablen in HALCON/C: Da beim Verlassen einer Prozedur nur die lokalen Variablen beseitigt werden, die Datenbank von HALCON dabei aber nicht modifiziert wird, ist es nötig, vor dem Verlassen der Prozedur lokale Objekte zu löschen.

Ausführungsinformationen

Parameter

ObjectsObjectsObjectsObjectsobjects (input_object)  object(-array) objectHObjectHObjectHobject

Zu löschende Objekte.

Ergebnis

Sind die Surrogate korrekt, d.h. alle Objekte in der HALCON-Datenbank vorhanden, dann liefert clear_objclear_objClearObjClearObjClearObj den Wert 2 (H_MSG_TRUE). Sind nicht alle Surrogate zulässig (z.B. schon gelöscht), so führt dies zu einer Fehlerbehandlung, die zur Folge hat, dass auch korrekte Surrogate nicht gelöscht werden. Mit dem Aufruf set_check(::'~clear':)set_check("~clear")SetCheck("~clear")SetCheck("~clear")SetCheck("~clear") wird erreicht, dass bei fehlerhaften Surrogaten keine Fehlerbehandlung erfolgt und alle möglichen Löschungen ausgeführt werden. Das Verhalten bei leerer Eingabe (keine Eingabeobjekte 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Alternativen

reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDb

Siehe auch

set_checkset_checkSetCheckSetCheckSetCheck

Modul

Foundation