copy_objcopy_objCopyObjCopyObjcopy_obj (算子)
名称
copy_objcopy_objCopyObjCopyObjcopy_obj — 复制 HALCON 数据库中的图标对象。
签名
void CopyObj(const HObject& Objects, HObject* ObjectsSelected, const HTuple& Index, const HTuple& NumObj)
HObject HObject::CopyObj(Hlong Index, Hlong NumObj) const
HImage HImage::CopyObj(Hlong Index, Hlong NumObj) const
HRegion HRegion::CopyObj(Hlong Index, Hlong NumObj) const
HXLD HXLD::CopyObj(Hlong Index, Hlong NumObj) const
HXLDCont HXLDCont::CopyObj(Hlong Index, Hlong NumObj) const
HXLDPoly HXLDPoly::CopyObj(Hlong Index, Hlong NumObj) const
HXLDPara HXLDPara::CopyObj(Hlong Index, Hlong NumObj) const
HXLDModPara HXLDModPara::CopyObj(Hlong Index, Hlong NumObj) const
HXLDExtPara HXLDExtPara::CopyObj(Hlong Index, Hlong NumObj) const
static void HOperatorSet.CopyObj(HObject objects, out HObject objectsSelected, HTuple index, HTuple numObj)
HObject HObject.CopyObj(int index, int numObj)
HImage HImage.CopyObj(int index, int numObj)
HRegion HRegion.CopyObj(int index, int numObj)
HXLD HXLD.CopyObj(int index, int numObj)
HXLDCont HXLDCont.CopyObj(int index, int numObj)
HXLDPoly HXLDPoly.CopyObj(int index, int numObj)
HXLDPara HXLDPara.CopyObj(int index, int numObj)
HXLDModPara HXLDModPara.CopyObj(int index, int numObj)
HXLDExtPara HXLDExtPara.CopyObj(int index, int numObj)
描述
copy_objcopy_objCopyObjCopyObjCopyObjcopy_obj copies NumObjNumObjNumObjNumObjnumObjnum_obj iconic objects
beginning with index IndexIndexIndexIndexindexindex (starting with 1) from the
iconic input object tuple ObjectsObjectsObjectsObjectsobjectsobjects to the output object
ObjectsSelectedObjectsSelectedObjectsSelectedObjectsSelectedobjectsSelectedobjects_selected. If -1 is passed for NumObjNumObjNumObjNumObjnumObjnum_obj
all objects beginning with IndexIndexIndexIndexindexindex are copied. No new
storage is allocated for the regions and images. Instead, new
objects containing references to the existing objects are created.
The number of objects in an object tuple can be queried with the
operator count_objcount_objCountObjCountObjCountObjcount_obj。
For a short description of the iconic objects that are available in HALCON
see the introduction of chapter 对象。
执行信息
- 支持计算设备上的对象。
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
ObjectsObjectsObjectsObjectsobjectsobjects (输入对象) object(-array) → objectHObjectHObjectHObjectHobject
Objects to be copied.
ObjectsSelectedObjectsSelectedObjectsSelectedObjectsSelectedobjectsSelectedobjects_selected (输出对象) object(-array) → objectHObjectHObjectHObjectHobject *
Copied objects.
IndexIndexIndexIndexindexindex (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Starting index of the objects to be copied.
默认值:
1
建议值:
1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000
值范围:
1
≤
Index
Index
Index
Index
index
index
限制:
Index <= number(Objects)
NumObjNumObjNumObjNumObjnumObjnum_obj (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of objects to be copied or -1.
默认值:
1
建议值:
-1, 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000
值范围:
-1
≤
NumObj
NumObj
NumObj
NumObj
numObj
num_obj
限制:
NumObj + Index - 1 <= number(Objects) && NumObj != 0
示例(HDevelop)
gen_circle (Circles, [100,200,400], [200,100,400], [100,100,50])
copy_obj (Circles, CircleCopy, 2, 3)
erosion_circle (CircleCopy, CircleErosion, 15.5)
dev_set_color ('red')
dev_set_draw ('fill')
dev_display(Circles)
dev_set_color ('white')
dev_set_draw ('margin')
dev_display (CircleCopy)
dev_set_color ('green')
dev_display (CircleErosion)
示例(C)
/* Access all regions */
count_obj(Regions,&Num);
for (i=1; i<=Num; i++);
{
copy_obj(Regions,&Single,i,1);
T_get_region_polygon(Single,5.0,&Row,&Column);
T_disp_polygon(WindowHandleTuple,Row,Column);
destroy_tuple(Row);
destroy_tuple(Column);
}
示例(HDevelop)
gen_circle (Circles, [100,200,400], [200,100,400], [100,100,50])
copy_obj (Circles, CircleCopy, 2, 3)
erosion_circle (CircleCopy, CircleErosion, 15.5)
dev_set_color ('red')
dev_set_draw ('fill')
dev_display(Circles)
dev_set_color ('white')
dev_set_draw ('margin')
dev_display (CircleCopy)
dev_set_color ('green')
dev_display (CircleErosion)
示例(HDevelop)
gen_circle (Circles, [100,200,400], [200,100,400], [100,100,50])
copy_obj (Circles, CircleCopy, 2, 3)
erosion_circle (CircleCopy, CircleErosion, 15.5)
dev_set_color ('red')
dev_set_draw ('fill')
dev_display(Circles)
dev_set_color ('white')
dev_set_draw ('margin')
dev_display (CircleCopy)
dev_set_color ('green')
dev_display (CircleErosion)
示例(HDevelop)
gen_circle (Circles, [100,200,400], [200,100,400], [100,100,50])
copy_obj (Circles, CircleCopy, 2, 3)
erosion_circle (CircleCopy, CircleErosion, 15.5)
dev_set_color ('red')
dev_set_draw ('fill')
dev_display(Circles)
dev_set_color ('white')
dev_set_draw ('margin')
dev_display (CircleCopy)
dev_set_color ('green')
dev_display (CircleErosion)
复杂度
Runtime complexity: O(|ObjectsObjectsObjectsObjectsobjectsobjects| + NumObjNumObjNumObjNumObjnumObjnum_obj);
Memory complexity of the result object: O(NumObjNumObjNumObjNumObjnumObjnum_obj)
结果
copy_objcopy_objCopyObjCopyObjCopyObjcopy_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
替代
select_objselect_objSelectObjSelectObjSelectObjselect_obj
另见
count_objcount_objCountObjCountObjCountObjcount_obj,
concat_objconcat_objConcatObjConcatObjConcatObjconcat_obj,
obj_to_integerobj_to_integerObjToIntegerObjToIntegerObjToIntegerobj_to_integer,
copy_imagecopy_imageCopyImageCopyImageCopyImagecopy_image
模块
基础