KlassenKlassenKlassenKlassen | | | | Operatoren

copy_objcopy_objCopyObjcopy_objCopyObjCopyObj (Operator)

Name

copy_objcopy_objCopyObjcopy_objCopyObjCopyObj — Kopieren von Bildobjekten in der HALCON-Datenbank.

Signatur

copy_obj(Objects : ObjectsSelected : Index, NumObj : )

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)

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

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

void HOperatorSetX.CopyObj(
[in] IHUntypedObjectX* Objects, [out] IHUntypedObjectX*ObjectsSelected, [in] VARIANT Index, [in] VARIANT NumObj)

IHImageX* HImageX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHRegionX* HRegionX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHUntypedObjectX* HUntypedObjectX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHXLDContX* HXLDContX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHXLDPolyX* HXLDPolyX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHXLDParaX* HXLDParaX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHXLDModParaX* HXLDModParaX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

IHXLDExtParaX* HXLDExtParaX.CopyObj(
[in] Hlong Index, [in] Hlong NumObj)

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)

Beschreibung

copy_objcopy_objCopyObjcopy_objCopyObjCopyObj kopiert NumObjNumObjNumObjNumObjNumObjnumObj Bildobjekte ab Position IndexIndexIndexIndexIndexindex (beginnend mit 1) aus dem Tupel von Eingabeobjekten in ObjectsObjectsObjectsObjectsObjectsobjects. Das resultierende Tupel von Ausgabeobjekten wird in ObjectsSelectedObjectsSelectedObjectsSelectedObjectsSelectedObjectsSelectedobjectsSelected abgelegt. Wird für NumObjNumObjNumObjNumObjNumObjnumObj der Wert -1 verwendet, dann werden alle Objekte ab IndexIndexIndexIndexIndexindex kopiert. Beim Kopieren werden die Region und die Bilder nicht dupliziert. Es werden neue Objekte angelegt, die Verweise auf die Regionen und Bilder enthalten. Die Anzahl von Objekten in einem Tupel kann mit count_objcount_objCountObjcount_objCountObjCountObj abgefragt werden.

Die in HALCON verfügbaren ikonischen Objekte werden bei der Einleitung zu Kapitel Objekt vorgestellt.

Parallelisierung

Parameter

ObjectsObjectsObjectsObjectsObjectsobjects (input_object)  object(-array) objectHObjectHObjectHObjectHObjectXHobject

Objekte, die kopiert werden sollen.

ObjectsSelectedObjectsSelectedObjectsSelectedObjectsSelectedObjectsSelectedobjectsSelected (output_object)  object(-array) objectHObjectHObjectHObjectHObjectXHobject *

Kopierte Objekte.

IndexIndexIndexIndexIndexindex (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Ab dieser Position in dem Tupel Object werden Bildobjekte kopiert.

Defaultwert: 1

Wertevorschläge: 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000

Typischer Wertebereich: 1 ≤ Index Index Index Index Index index

Restriktion: Index <= number(Objects)

NumObjNumObjNumObjNumObjNumObjnumObj (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Anzahl der zu kopierenden Bildobjekte oder -1.

Defaultwert: 1

Wertevorschläge: -1, 1, 2, 3, 4, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000

Typischer Wertebereich: -1 ≤ NumObj NumObj NumObj NumObj NumObj numObj

Restriktion: NumObj + Index - 1 <= number(Objects) && NumObj != 0

Beispiel (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)

Beispiel (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);
  clear_obj(Single);
}

Beispiel (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)

Beispiel (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)

Beispiel (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)

Beispiel (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)

Komplexität

Laufzeitkomplexität: O(|ObjectsObjectsObjectsObjectsObjectsobjects| + NumObjNumObjNumObjNumObjNumObjnumObj);

Speicherkomplexität der Ausgabedaten: O(NumObjNumObjNumObjNumObjNumObjnumObj)

Ergebnis

Sind die Surrogate korrekt, d.h. alle Objekte in der HALCON-Datenbank vorhanden und die Parameter korrekt, dann liefert copy_objcopy_objCopyObjcopy_objCopyObjCopyObj den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabeobjekte vorhanden) lässt sich mittels set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

count_objcount_objCountObjcount_objCountObjCountObj

Alternativen

select_objselect_objSelectObjselect_objSelectObjSelectObj

Siehe auch

count_objcount_objCountObjcount_objCountObjCountObj, concat_objconcat_objConcatObjconcat_objConcatObjConcatObj, obj_to_integerobj_to_integerObjToIntegerobj_to_integerObjToIntegerObjToInteger, copy_imagecopy_imageCopyImagecopy_imageCopyImageCopyImage

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren