concat_objconcat_objConcatObjConcatObjconcat_obj连接对象(算子)

名称

concat_objconcat_objConcatObjConcatObjconcat_obj — 连接两个图标对象元组。

签名

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

描述

concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 将两个图标对象元组 Objects1Objects1Objects1Objects1objects1objects_1Objects2Objects2Objects2Objects2objects2objects_2 连接成一个新的图标对象元组 ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat。因此,该元组包含两个输入元组中的所有图标对象:

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat = [Objects1Objects1Objects1Objects1objects1objects_1,Objects2Objects2Objects2Objects2objects2objects_2]

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat 中,首先存储 Objects1Objects1Objects1Objects1objects1objects_1 中的对象,随后存储 Objects2Objects2Objects2Objects2objects2objects_2 中的对象,即对象的顺序得以保留。请注意,ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat 中仅存储对应图像和区域的引用,即不会分配新内存。这意味着对输入图像的修改(例如使用 set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayvalset_grayvaloverpaint_grayoverpaint_grayOverpaintGrayOverpaintGrayOverpaintGrayoverpaint_grayoverpaint_regionoverpaint_regionOverpaintRegionOverpaintRegionOverpaintRegionoverpaint_region 操作)将直接影响输出元组 ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat 中的图像,反之亦然。

concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 不应与 union1union1Union1Union1Union1union1union2union2Union2Union2Union2union2 混淆,后者会合并区域,即改变对象数量。

concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 可用于将不同图像对象类型的对象(例如图像和 XLD 轮廓)连接成单个对象。仅当需要将多个对象的结果(例如图像处理序列的结果)累加到单个对象变量中时才建议使用此操作。需注意,仅有 concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj, copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj, select_objselect_objSelectObjSelectObjSelectObjselect_objdisp_objdisp_objDispObjDispObjDispObjdisp_obj 这四个算子能处理此类混合类型的对象元组。

有关 HALCON 中可用图标对象的简要说明,请参阅 对象 一章的引言部分。

执行信息

参数

Objects1Objects1Objects1Objects1objects1objects_1 (输入对象)  object(-array) objectHObjectHObjectHObjectHobject

对象元组 1。

Objects2Objects2Objects2Objects2objects2objects_2 (输入对象)  object(-array) objectHObjectHObjectHObjectHobject

对象元组 2。

ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat (输出对象)  object-array objectHObjectHObjectHObjectHobject *

连接的对象。

示例(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,&CircleAndRectangle);
disp_region(CircleAndRectangle,WindowHandle);

复杂度

运行时间复杂度: O(|Objects1Objects1Objects1Objects1objects1objects_1| + |Objects2Objects2Objects2Objects2objects2objects_2|);

结果对象的内存复杂度: O(|Objects1Objects1Objects1Objects1objects1objects_1| + |Objects2Objects2Objects2Objects2objects2objects_2|)

结果

concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 返回 2 (H_MSG_TRUE),当所有对象均存在于 HALCON 数据库中。当输入为空时,可设置行为通过算子 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>)。如有必要,则抛出异常。

另见

count_objcount_objCountObjCountObjCountObjcount_obj, copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj, select_objselect_objSelectObjSelectObjSelectObjselect_obj, disp_objdisp_objDispObjDispObjDispObjdisp_obj

模块

基础