HALCON Reference Manual 10.0.2
Table of Contents / Object / Manipulation ClassesClassesClasses | | | Operators

concat_objconcat_objconcat_objConcatObjConcatObj (Operator)

Name

concat_objconcat_objconcat_objConcatObjConcatObj — Concatenate two iconic object tuples.

Signature

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)

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

void HOperatorSetX.ConcatObj(
[in] IHUntypedObjectX* Objects1, [in] IHUntypedObjectX* Objects2, [out] IHUntypedObjectX*ObjectsConcat)

IHImageX* HImageX.ConcatObj([in] IHImageX* Objects2)

IHRegionX* HRegionX.ConcatObj([in] IHRegionX* Objects2)

IHUntypedObjectX* HUntypedObjectX.ConcatObj([in] IHUntypedObjectX* Objects2)

IHXLDContX* HXLDContX.ConcatObj([in] IHXLDContX* Objects2)

IHXLDPolyX* HXLDPolyX.ConcatObj([in] IHXLDPolyX* Objects2)

IHXLDParaX* HXLDParaX.ConcatObj([in] IHXLDParaX* Objects2)

IHXLDModParaX* HXLDModParaX.ConcatObj([in] IHXLDModParaX* Objects2)

IHXLDExtParaX* HXLDExtParaX.ConcatObj([in] IHXLDExtParaX* Objects2)

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)

Description

concat_objconcat_objconcat_objConcatObjConcatObj concatenates the two tuples of iconic objects Objects1Objects1Objects1Objects1objects1 and Objects2Objects2Objects2Objects2objects2 into a new object tuple ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat. Hence, this tuple contains all the objects of the two input tuples:

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat = [Objects1Objects1Objects1Objects1objects1,Objects2Objects2Objects2Objects2objects2]

In ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat the objects of Objects1Objects1Objects1Objects1objects1 are stored first, followed by the objects of Objects2Objects2Objects2Objects2objects2. The order of the objects is preserved. As usual, only the objects are copied, and not the corresponding images and regions, i.e., no new memory is allocated. concat_objconcat_objconcat_objConcatObjConcatObj is designed especially for HALCON/C. In languages like C++ it is not needed.

concat_objconcat_objconcat_objConcatObjConcatObj should not be confused with union1union1union1Union1Union1 or union2union2union2Union2Union2, in which regions are merged, i.e., in which the number of objects is modified.

concat_objconcat_objconcat_objConcatObjConcatObj can be used to concatenate objects of different image object types (e.g., images and XLD contours) into a single object. This is only recommended if it is necessary to accumulate in a single object variable, for example, the results of an image processing sequence. It should be noted that the only operators that can handle such object tuples of mixed type are concat_objconcat_objconcat_objConcatObjConcatObj, copy_objcopy_objcopy_objCopyObjCopyObj, select_objselect_objselect_objSelectObjSelectObj, and disp_objdisp_objdisp_objDispObjDispObj. For technical reasons, object tuples of mixed type must not be created in HDevelop.

Parallelization

Parameters

Objects1Objects1Objects1Objects1objects1 (input_object)  object(-array) objectHObjectHObjectHObjectXHobject

Object tuple 1.

Objects2Objects2Objects2Objects2objects2 (input_object)  object(-array) objectHObjectHObjectHObjectXHobject

Object tuple 2.

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcat (output_object)  object-array objectHObjectHObjectArrayHObjectXHobject *

Concatenated objects.

Example (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);
clear_obj(Circle); clear_obj(Rectangle);
disp_region(CircleAndRectangle,WindowHandle);

Complexity

Runtime complexity: O(|Objects1Objects1Objects1Objects1objects1| + |Objects2Objects2Objects2Objects2objects2|);

Memory complexity of the result objects: O(|Objects1Objects1Objects1Objects1objects1| + |Objects2Objects2Objects2Objects2objects2|)

Result

concat_objconcat_objconcat_objConcatObjConcatObj returns 2 (H_MSG_TRUE) if all objects are contained in the HALCON database. If the input is empty the behavior can be set via set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>). If necessary, an exception is raised.

See also

count_objcount_objcount_objCountObjCountObj, copy_objcopy_objcopy_objCopyObjCopyObj, select_objselect_objselect_objSelectObjSelectObj, disp_objdisp_objdisp_objDispObjDispObj

Module

Foundation


Table of Contents / Object / Manipulation ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH