| Operatoren |
concat_obj — Konkatenieren von zwei Objekttupeln zu einem Tupel von Objekten.
concat_obj(Objects1, Objects2 : ObjectsConcat : : )
concat_obj konkateniert die Objekttupel Objects1 und Objects2 zu einem neuen Tupel ObjectsConcat. Dieses enthält also alle ikonischen Objekte, die in den beiden Eingabelisten enthalten sind:
ObjectsConcat = [Objects1,Objects2]
In ObjectsConcat werden erst alle Objekte aus Objects1 und dann die Objekte von Objects2 abgelegt. Die Reihenfolge der Objekte wird dabei nicht verändert. Zu beachten ist, dass dabei Referenzen auf die Bilder und Regionen angelegt werden, aber nicht die Bilder und Regionen selber kopiert werden. Das bedeutet, dass Änderungen an Eingabebildern, die z.B. mit set_grayval, overpaint_gray oder overpaint_region durchgeführt werden, auch die Bilder des Ausgabetupels ObjectsConcat betreffen und umgekehrt.
concat_obj ist nicht mit union1 oder union2 zu verwechseln, bei denen die Regionen vereinigt werden, also die Anzahl der Objekte verändert wird.
Mit concat_obj ist es möglich, Objekte verschiedener Bildobjekttypen (z.B. Bilder und XLD-Konturen) zu einem Objekt zu konkatenieren. Dies ist ausschließlich dann sinnvoll, wenn es unumgänglich ist, in einer Objektvariable z.B. alle Ergebnisse einer Bildverarbeitungssequenz aufzusammeln. Dabei ist zu beachten, dass die einzigen Operatoren, die diese Art von gemischten Objekttupeln verarbeiten können, concat_obj, copy_obj, select_obj und disp_obj sind.
Objekttupel 1.
Objekttupel 2.
Enthält (Kopien aller) Objekte aus Objects1 und Objects2.
/* generate a tuple of a circle and a rectangle */ gen_circle(&Circle,200.0,400.0,23.0); gen_rectangle1(&Rectangle,23.0,44.0,203.0,201.0); concat_obj(Circle,Rectangle,&CirclAndRectangle); clear_obj(Circle); clear_obj(Rectangle); disp_region(CircleAndRectangle,WindowHandle);
Laufzeitkomplexität: O(|Objects1| + |Objects2|);
Speicherplatzkomplexität der Ergebnisdaten: O(|Objects1| + |Objects2|)
Sind die Surrogate korrekt, d.h. alle Objekte in der HALCON-Datenbank vorhanden, dann liefert concat_obj den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabeobjekte vorhanden) lässt sich mittels set_system(::'no_object_result',<Result>:) festlegen.
count_obj, copy_obj, select_obj, disp_obj
Foundation
| Operatoren |