concat_objconcat_objConcatObjConcatObjconcat_obj连接对象(算子)
名称
concat_objconcat_objConcatObjConcatObjconcat_obj — 连接两个图标对象元组。
签名
描述
concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 将两个图标对象元组
Objects1Objects1Objects1Objects1objects1objects_1 和 Objects2Objects2Objects2Objects2objects2objects_2 连接成一个新的图标对象元组
ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat。因此,该元组包含两个输入元组中的所有图标对象:
ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat = [Objects1Objects1Objects1Objects1objects1objects_1,Objects2Objects2Objects2Objects2objects2objects_2]
在 ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat 中,首先存储 Objects1Objects1Objects1Objects1objects1objects_1 中的对象,随后存储 Objects2Objects2Objects2Objects2objects2objects_2 中的对象,即对象的顺序得以保留。请注意,ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat 中仅存储对应图像和区域的引用,即不会分配新内存。这意味着对输入图像的修改(例如使用 set_grayvalset_grayvalSetGrayvalSetGrayvalSetGrayvalset_grayval、overpaint_grayoverpaint_grayOverpaintGrayOverpaintGrayOverpaintGrayoverpaint_gray 或 overpaint_regionoverpaint_regionOverpaintRegionOverpaintRegionOverpaintRegionoverpaint_region 操作)将直接影响输出元组 ObjectsConcatObjectsConcatObjectsConcatObjectsConcatobjectsConcatobjects_concat 中的图像,反之亦然。
concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 不应与
union1union1Union1Union1Union1union1 或 union2union2Union2Union2Union2union2 混淆,后者会合并区域,即改变对象数量。
concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj 可用于将不同图像对象类型的对象(例如图像和 XLD 轮廓)连接成单个对象。仅当需要将多个对象的结果(例如图像处理序列的结果)累加到单个对象变量中时才建议使用此操作。需注意,仅有
concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj, copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj, select_objselect_objSelectObjSelectObjSelectObjselect_obj 和 disp_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
模块
基础