Copy an iconic object in the HALCON database.
::copy_obj copies NumObj iconic objects beginning with index Index (starting with 1) from the iconic input object tuple Objects to the output object ObjectsSelected. If -1 is passed for NumObj all objects beginning with Index 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_obj.
|
Objects (input_object) |
object(-array) -> Hobject: HObject(Array) |
| Objects to be copied. | |
|
ObjectsSelected (output_object) |
object(-array) -> Hobject * : HObject(Array) |
| Copied objects. | |
|
Index (input_control) |
integer -> HTuple.long |
| Starting index of the objects to be copied. | |
| Default value: 1 | |
| Suggested values: 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000 | |
| Typical range of values: 1 <= Index | |
| Restriction: Index <= number(Objects) | |
|
NumObj (input_control) |
integer -> HTuple.long |
| Number of objects to be copied or -1. | |
| Default value: 1 | |
| Suggested values: -1, 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000 | |
| Typical range of values: -1 <= NumObj | |
| Restriction: ((NumObj + Index) <= number(Objects)) && (NumObj != 0) | |
/* 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);
clear_obj(Single);
}Runtime complexity: O(|Objects| + NumObj);
Memory complexity of the result object: O(NumObj)
::copy_obj returns 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.
::count_obj, ::concat_obj, ::obj_to_integer, ::copy_image
Basic operators