compare_objcompare_objCompareObjCompareObj (Operator)

Name

compare_objcompare_objCompareObjCompareObj — Vergleich von ikonischen Objekten hinsichtlich ihrer Gleichheit.

Signatur

compare_obj(Objects1, Objects2 : : Epsilon : IsEqual)

Herror compare_obj(const Hobject Objects1, const Hobject Objects2, double Epsilon, Hlong* IsEqual)

Herror T_compare_obj(const Hobject Objects1, const Hobject Objects2, const Htuple Epsilon, Htuple* IsEqual)

void CompareObj(const HObject& Objects1, const HObject& Objects2, const HTuple& Epsilon, HTuple* IsEqual)

Hlong HObject::CompareObj(const HObject& Objects2, const HTuple& Epsilon) const

Hlong HObject::CompareObj(const HObject& Objects2, double Epsilon) const

Hlong HImage::CompareObj(const HImage& Objects2, const HTuple& Epsilon) const

Hlong HImage::CompareObj(const HImage& Objects2, double Epsilon) const

Hlong HRegion::CompareObj(const HRegion& Objects2, const HTuple& Epsilon) const

Hlong HRegion::CompareObj(const HRegion& Objects2, double Epsilon) const

Hlong HXLD::CompareObj(const HXLD& Objects2, const HTuple& Epsilon) const

Hlong HXLD::CompareObj(const HXLD& Objects2, double Epsilon) const

Hlong HXLDCont::CompareObj(const HXLDCont& Objects2, const HTuple& Epsilon) const

Hlong HXLDCont::CompareObj(const HXLDCont& Objects2, double Epsilon) const

Hlong HXLDPoly::CompareObj(const HXLDPoly& Objects2, const HTuple& Epsilon) const

Hlong HXLDPoly::CompareObj(const HXLDPoly& Objects2, double Epsilon) const

Hlong HXLDPara::CompareObj(const HXLDPara& Objects2, const HTuple& Epsilon) const

Hlong HXLDPara::CompareObj(const HXLDPara& Objects2, double Epsilon) const

Hlong HXLDModPara::CompareObj(const HXLDModPara& Objects2, const HTuple& Epsilon) const

Hlong HXLDModPara::CompareObj(const HXLDModPara& Objects2, double Epsilon) const

Hlong HXLDExtPara::CompareObj(const HXLDExtPara& Objects2, const HTuple& Epsilon) const

Hlong HXLDExtPara::CompareObj(const HXLDExtPara& Objects2, double Epsilon) const

static void HOperatorSet.CompareObj(HObject objects1, HObject objects2, HTuple epsilon, out HTuple isEqual)

int HObject.CompareObj(HObject objects2, HTuple epsilon)

int HObject.CompareObj(HObject objects2, double epsilon)

int HImage.CompareObj(HImage objects2, HTuple epsilon)

int HImage.CompareObj(HImage objects2, double epsilon)

int HRegion.CompareObj(HRegion objects2, HTuple epsilon)

int HRegion.CompareObj(HRegion objects2, double epsilon)

int HXLD.CompareObj(HXLD objects2, HTuple epsilon)

int HXLD.CompareObj(HXLD objects2, double epsilon)

int HXLDCont.CompareObj(HXLDCont objects2, HTuple epsilon)

int HXLDCont.CompareObj(HXLDCont objects2, double epsilon)

int HXLDPoly.CompareObj(HXLDPoly objects2, HTuple epsilon)

int HXLDPoly.CompareObj(HXLDPoly objects2, double epsilon)

int HXLDPara.CompareObj(HXLDPara objects2, HTuple epsilon)

int HXLDPara.CompareObj(HXLDPara objects2, double epsilon)

int HXLDModPara.CompareObj(HXLDModPara objects2, HTuple epsilon)

int HXLDModPara.CompareObj(HXLDModPara objects2, double epsilon)

int HXLDExtPara.CompareObj(HXLDExtPara objects2, HTuple epsilon)

int HXLDExtPara.CompareObj(HXLDExtPara objects2, double epsilon)

Beschreibung

Der Operator compare_objcompare_objCompareObjCompareObjCompareObj vergleicht ikonische Objekte. Die ikonischen Objekte werden in den beiden Eingabeparametern Objects1Objects1Objects1Objects1objects1 und Objects2Objects2Objects2Objects2objects2 in Form von (möglicherweise gemischten) Tupeln von Bildern, Regionen oder XLDs übergeben. Dabei wird (für alle n) das n-te Objekt in Objects1Objects1Objects1Objects1objects1 mit dem n-ten Objekt in Objects2Objects2Objects2Objects2objects2 verglichen. Wenn die beiden übergebenen Objekttupel gleich lang und alle Objekte identisch sind, wird der Parameter IsEqualIsEqualIsEqualIsEqualisEqual auf 1 gesetzt, andernfalls auf 0.

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

Abhängig vom Typ der Eingabeobjekte müssen verschiedene Bedingungen erfüllt werden, damit zwei Objekte als gleich gelten. Im Folgenden sind die Bedingungen für die möglichen Objekte aufgelistet:

Bilder:

Für alle Kanäle dürfen sich die Grauwerte der entsprechenden Pixel um nicht mehr als EpsilonEpsilonEpsilonEpsilonepsilon unterscheiden. Dabei ist zu beachten, dass Bilder nur innerhalb ihres Definitionsbereich (ROI) miteinander verglichen werden und sie nur dann identisch sind, wenn sie auch den gleichen Definitionsbereich(ROI) aufweisen.

Regionen:

Die Regionen müssen identisch sein. Der Parameter EpsilonEpsilonEpsilonEpsilonepsilon hat keine Auswirkung auf den Vergleich von Regionen.

XLD Konturen:

XLD Konturen müssen die gleiche Anzahl an Punkten sowie die gleichen Attribute haben. Die Koordinaten der Punkte und die Attributwerte dürfen sich um nicht mehr als EpsilonEpsilonEpsilonEpsilonepsilon unterscheiden.

XLD Polygone:

XLD Polygone müssen die gleiche Anzahl an Liniensegmenten aufweisen. Die Länge und die Orientierung dieser Segmente sowie die Koordinaten der Kontrollpunkte dürfen sich um nicht mehr als EpsilonEpsilonEpsilonEpsilonepsilon unterscheiden.

XLD Parallelen und erweiterte XLD Parallelen:

XLD Parallelen müssen einen identischen Index für das Start- und Endliniensegment der Parallelen des ersten Polygons (P1) und des zweiten Polygons (P2) sowie identische Zeiger zu der zugrundeliegenden Kontur aufweisen.

Modifizierte XLD Parallelen:

Für modifizierte XLD Parallelen gelten dieselben Bedingungen wie für XLD Parallelen und erweiterte XLD Parallelen. Zusätzlich muss auch der Abstand zwischen den Liniensegmenten der parallelen Polygone identisch sein.

Im Gegensatz zu test_equal_objtest_equal_objTestEqualObjTestEqualObjTestEqualObj, vergleicht compare_objcompare_objCompareObjCompareObjCompareObj den tatsächlichen Inhalt der Objekte. Bei test_equal_objtest_equal_objTestEqualObjTestEqualObjTestEqualObj wird hingegen nur bei Regionen der tatsächlichen Inhalt verglichen, während bei allen anderen Objekten nur geprüft wird, ob sie denselben Speicherort besitzen.

Ausführungsinformationen

Parameter

Objects1Objects1Objects1Objects1objects1 (input_object)  object(-array) objectHObjectHObjectHobject

Referenzobjekte.

Objects2Objects2Objects2Objects2objects2 (input_object)  object(-array) objectHObjectHObjectHobject

Vergleichsobjekte.

EpsilonEpsilonEpsilonEpsilonepsilon (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Maximal erlaubte Differenz zwischen zwei Grauwerten oder Koordinaten etc.

Defaultwert: 0.0

Wertevorschläge: 0.0, 1.e-5

IsEqualIsEqualIsEqualIsEqualisEqual (output_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Boolscher Ergebniswert.

Ergebnis

compare_objcompare_objCompareObjCompareObjCompareObj liefert den Wert 2 (H_MSG_TRUE), falls die Parameter korrekt sind. Das Verhalten bei leerer Eingabe (keine Eingaberegionen vorhanden) lässt sich mittels 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>) festlegen. Unterscheidet sich die Anzahl der Objekte, wird eine Fehlerbehandlung durchgeführt. Ansonsten liefert compare_objcompare_objCompareObjCompareObjCompareObj den Wert 2 (H_MSG_TRUE)

Siehe auch

test_equal_objtest_equal_objTestEqualObjTestEqualObjTestEqualObj, test_equal_regiontest_equal_regionTestEqualRegionTestEqualRegionTestEqualRegion

Modul

Foundation