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.
Die in HALCON verfügbaren ikonischen Objekte werden bei der Einleitung zu Kapitel Objekt vorgestellt.
Objects1 (input_object) object(-array) → object
Objekttupel 1.
Objects2 (input_object) object(-array) → object
Objekttupel 2.
ObjectsConcat (output_object) object-array → object
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); 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 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