clear_obj
— Löschen von Bildobjekten aus der HALCON-Datenbank.
clear_obj(Objects : : : )
clear_obj
löscht ikonische Objekte in der Datenbank, die
nicht mehr benötigt werden. Es ist zu beachten, dass
clear_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_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_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.
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.
Objects
(input_object) object(-array) →
object
Zu löschende Objekte.
Sind die Surrogate korrekt, d.h. alle Objekte in der
HALCON-Datenbank vorhanden, dann liefert clear_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':)
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>:)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Foundation