Skip to content

copy_objCopyObjCopyObjcopy_objcopy_obj🔗

Short description🔗

copy_objCopyObjCopyObjcopy_objcopy_obj — Copy an iconic object in the HALCON database.

Signature🔗

copy_obj( object Objects, out object ObjectsSelected, integer Index, integer NumObj )void CopyObj( const HObject& Objects, HObject* ObjectsSelected, const HTuple& Index, const HTuple& NumObj )static void HOperatorSet.CopyObj( HObject objects, out HObject objectsSelected, HTuple index, HTuple numObj )def copy_obj( objects: HObject, index: int, num_obj: int ) -> HObject

Herror copy_obj( const Hobject Objects, Hobject* ObjectsSelected, const Hlong Index, const Hlong NumObj )

Herror T_copy_obj( 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

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 )

Description🔗

copy_objCopyObj copies NumObjnumObjnum_obj iconic objects beginning with index Indexindexindex (starting with 1) from the iconic input object tuple Objectsobjectsobjects to the output object ObjectsSelectedobjectsSelectedobjects_selected. If -1 is passed for NumObjnumObjnum_obj all objects beginning with Indexindexindex 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_objCountObj.

For a short description of the iconic objects that are available in HALCON see the introduction of chapter Object.

Execution information🔗

Execution information
  • Supports objects on compute devices.

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

Parameters🔗

Objectsobjectsobjects (input_object) object(-array) → objectHObjectHObjectHObjectHobject

Objects to be copied.

ObjectsSelectedobjectsSelectedobjects_selected (output_object) object(-array) → objectHObjectHObjectHObjectHobject *

Copied objects.

Indexindexindex (input_control) integer → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Starting index of the objects to be copied.

Default: 11
Suggested values: 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 50001, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000
Value range: 1 ≤ Index
Restriction: Index <= number(Objects)

NumObjnumObjnum_obj (input_control) integer → (integer)HTuple (Hlong)HTuple (int / long)intHtuple (Hlong)

Number of objects to be copied or -1.

Default: 11
Suggested values: -1, 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000-1, 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000
Value range: -1 ≤ NumObj
Restriction: (NumObj + Index - 1) <= number(Objects) && NumObj != 0

Example🔗

(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)\;
}

Complexity🔗

Runtime complexity: \(O(|\textrm{Objects}| + \textrm{NumObj})\);

Memory complexity of the result object: \(O(\textrm{NumObj})\)

Result🔗

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

Combinations with other operators🔗

Combinations

Possible predecessors

count_objCountObj

Alternatives

select_objSelectObj

See also

count_objCountObj, concat_objConcatObj, obj_to_integerObjToInteger, copy_imageCopyImage

Module🔗

Foundation