clear_objclear_objClearObjClearObjclear_obj (Operator)

Name

clear_objclear_objClearObjClearObjclear_obj — 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)

def clear_obj(objects: HObject) -> None

Beschreibung

clear_objclear_objClearObjClearObjClearObjclear_obj löscht ikonische Objekte in der Datenbank, die nicht mehr benötigt werden. Es ist zu beachten, dass clear_objclear_objClearObjClearObjClearObjclear_obj 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_objClearObjClearObjClearObjclear_obj 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_dbResetObjDbResetObjDbResetObjDbreset_obj_db 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

ObjectsObjectsObjectsObjectsobjectsobjects (input_object)  object(-array) objectHObjectHObjectHObjectHobject

Zu löschende Objekte.

Ergebnis

Sind die Surrogate korrekt, d.h. alle Objekte in der HALCON-Datenbank vorhanden, dann liefert clear_objclear_objClearObjClearObjClearObjclear_obj 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")set_check("~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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Alternativen

reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDbreset_obj_db

Siehe auch

set_checkset_checkSetCheckSetCheckSetCheckset_check

Modul

Foundation