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 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