concat_objconcat_objConcatObjConcatObj (Operator)

Name

concat_objconcat_objConcatObjConcatObj — Konkatenieren von zwei Objekttupeln zu einem Tupel von Objekten.

Signatur

concat_obj(Objects1, Objects2 : ObjectsConcat : : )

Herror concat_obj(const Hobject Objects1, const Hobject Objects2, Hobject* ObjectsConcat)

Herror T_concat_obj(const Hobject Objects1, const Hobject Objects2, Hobject* ObjectsConcat)

void ConcatObj(const HObject& Objects1, const HObject& Objects2, HObject* ObjectsConcat)

HObject HObject::ConcatObj(const HObject& Objects2) const

HImage HImage::ConcatObj(const HImage& Objects2) const

HRegion HRegion::ConcatObj(const HRegion& Objects2) const

HXLD HXLD::ConcatObj(const HXLD& Objects2) const

HXLDCont HXLDCont::ConcatObj(const HXLDCont& Objects2) const

HXLDPoly HXLDPoly::ConcatObj(const HXLDPoly& Objects2) const

HXLDPara HXLDPara::ConcatObj(const HXLDPara& Objects2) const

HXLDModPara HXLDModPara::ConcatObj(const HXLDModPara& Objects2) const

HXLDExtPara HXLDExtPara::ConcatObj(const HXLDExtPara& Objects2) const

static void HOperatorSet.ConcatObj(HObject objects1, HObject objects2, out HObject objectsConcat)

HObject HObject.ConcatObj(HObject objects2)

HImage HImage.ConcatObj(HImage objects2)

HRegion HRegion.ConcatObj(HRegion objects2)

HXLD HXLD.ConcatObj(HXLD objects2)

HXLDCont HXLDCont.ConcatObj(HXLDCont objects2)

HXLDPoly HXLDPoly.ConcatObj(HXLDPoly objects2)

HXLDPara HXLDPara.ConcatObj(HXLDPara objects2)

HXLDModPara HXLDModPara.ConcatObj(HXLDModPara objects2)

HXLDExtPara HXLDExtPara.ConcatObj(HXLDExtPara objects2)

Beschreibung

concat_objconcat_objConcatObjConcatObjConcatObj konkateniert die Objekttupel Objects1Objects1Objects1Objects1objects1 und Objects2Objects2Objects2Objects2objects2 zu einem neuen Tupel ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat. Dieses enthält also alle ikonischen Objekte, die in den beiden Eingabelisten enthalten sind:

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat = [Objects1Objects1Objects1Objects1objects1,Objects2Objects2Objects2Objects2objects2]

In ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat werden erst alle Objekte aus Objects1Objects1Objects1Objects1objects1 und dann die Objekte von Objects2Objects2Objects2Objects2objects2 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_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayval, overpaint_grayoverpaint_grayOverpaintGrayOverpaintGrayOverpaintGray oder overpaint_regionoverpaint_regionOverpaintRegionOverpaintRegionOverpaintRegion durchgeführt werden, auch die Bilder des Ausgabetupels ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat betreffen und umgekehrt.

concat_objconcat_objConcatObjConcatObjConcatObj ist nicht mit union1union1Union1Union1Union1 oder union2union2Union2Union2Union2 zu verwechseln, bei denen die Regionen vereinigt werden, also die Anzahl der Objekte verändert wird.

Mit concat_objconcat_objConcatObjConcatObjConcatObj 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_objconcat_objConcatObjConcatObjConcatObj, copy_objcopy_objCopyObjCopyObjCopyObj, select_objselect_objSelectObjSelectObjSelectObj und disp_objdisp_objDispObjDispObjDispObj sind.

Die in HALCON verfügbaren ikonischen Objekte werden bei der Einleitung zu Kapitel Objekt vorgestellt.

Ausführungsinformationen

Parameter

Objects1Objects1Objects1Objects1objects1 (input_object)  object(-array) objectHObjectHObjectHobject

Objekttupel 1.

Objects2Objects2Objects2Objects2objects2 (input_object)  object(-array) objectHObjectHObjectHobject

Objekttupel 2.

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat (output_object)  object-array objectHObjectHObjectHobject *

Enthält (Kopien aller) Objekte aus Objects1 und Objects2.

Beispiel (C)

/* 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);

Komplexität

Laufzeitkomplexität: O(|Objects1Objects1Objects1Objects1objects1| + |Objects2Objects2Objects2Objects2objects2|);

Speicherplatzkomplexität der Ergebnisdaten: O(|Objects1Objects1Objects1Objects1objects1| + |Objects2Objects2Objects2Objects2objects2|)

Ergebnis

Sind die Surrogate korrekt, d.h. alle Objekte in der HALCON-Datenbank vorhanden, dann liefert concat_objconcat_objConcatObjConcatObjConcatObj den Wert 2 (H_MSG_TRUE). 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>) festlegen.

Siehe auch

count_objcount_objCountObjCountObjCountObj, copy_objcopy_objCopyObjCopyObjCopyObj, select_objselect_objSelectObjSelectObjSelectObj, disp_objdisp_objDispObjDispObjDispObj

Modul

Foundation