concat_objconcat_objConcatObjConcatObjconcat_obj (Operator)

Name

concat_objconcat_objConcatObjConcatObjconcat_obj — 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)

def concat_obj(objects_1: HObject, objects_2: HObject) -> HObject

Beschreibung

concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj konkateniert die Objekttupel Objects1Objects1Objects1Objects1objects1objects_1 und Objects2Objects2Objects2Objects2objects2objects_2 zu einem neuen Tupel ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat. Dieses enthält also alle ikonischen Objekte, die in den beiden Eingabelisten enthalten sind:

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat = [Objects1Objects1Objects1Objects1objects1objects_1,Objects2Objects2Objects2Objects2objects2objects_2]

In ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat werden erst alle Objekte aus Objects1Objects1Objects1Objects1objects1objects_1 und dann die Objekte von Objects2Objects2Objects2Objects2objects2objects_2 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_grayvalSetGrayvalSetGrayvalSetGrayvalset_grayval, overpaint_grayoverpaint_grayOverpaintGrayOverpaintGrayOverpaintGrayoverpaint_gray oder overpaint_regionoverpaint_regionOverpaintRegionOverpaintRegionOverpaintRegionoverpaint_region durchgeführt werden, auch die Bilder des Ausgabetupels ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat betreffen und umgekehrt.

concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj ist nicht mit union1union1Union1Union1Union1union1 oder union2union2Union2Union2Union2union2 zu verwechseln, bei denen die Regionen vereinigt werden, also die Anzahl der Objekte verändert wird.

Mit concat_objconcat_objConcatObjConcatObjConcatObjconcat_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_objconcat_objConcatObjConcatObjConcatObjconcat_obj, copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj, select_objselect_objSelectObjSelectObjSelectObjselect_obj und disp_objdisp_objDispObjDispObjDispObjdisp_obj sind.

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

Ausführungsinformationen

Parameter

Objects1Objects1Objects1Objects1objects1objects_1 (input_object)  object(-array) objectHObjectHObjectHObjectHobject

Objekttupel 1.

Objects2Objects2Objects2Objects2objects2objects_2 (input_object)  object(-array) objectHObjectHObjectHObjectHobject

Objekttupel 2.

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat (output_object)  object-array objectHObjectHObjectHObjectHobject *

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(|Objects1Objects1Objects1Objects1objects1objects_1| + |Objects2Objects2Objects2Objects2objects2objects_2|);

Speicherplatzkomplexität der Ergebnisdaten: O(|Objects1Objects1Objects1Objects1objects1objects_1| + |Objects2Objects2Objects2Objects2objects2objects_2|)

Ergebnis

Sind die Surrogate korrekt, d.h. alle Objekte in der HALCON-Datenbank vorhanden, dann liefert concat_objconcat_objConcatObjConcatObjConcatObjconcat_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>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen.

Siehe auch

count_objcount_objCountObjCountObjCountObjcount_obj, copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj, select_objselect_objSelectObjSelectObjSelectObjselect_obj, disp_objdisp_objDispObjDispObjDispObjdisp_obj

Modul

Foundation