KlassenKlassenKlassenKlassen | | | | Operatoren

count_relationcount_relationCountRelationcount_relationCountRelationCountRelation (Operator)

Name

count_relationcount_relationCountRelationcount_relationCountRelationCountRelation — Ermitteln der Anzahl der Einträge in der HALCON-Datenbank.

Signatur

count_relation( : : RelationName : NumOfTuples)

Herror count_relation(const char* RelationName, Hlong* NumOfTuples)

Herror T_count_relation(const Htuple RelationName, Htuple* NumOfTuples)

Herror count_relation(const HTuple& RelationName, Hlong* NumOfTuples)

void CountRelation(const HTuple& RelationName, HTuple* NumOfTuples)

static Hlong HSystem::CountRelation(const HString& RelationName)

static Hlong HSystem::CountRelation(const char* RelationName)

void HOperatorSetX.CountRelation(
[in] VARIANT RelationName, [out] VARIANT* NumOfTuples)

Hlong HSystemX.CountRelation([in] BSTR RelationName)

static void HOperatorSet.CountRelation(HTuple relationName, out HTuple numOfTuples)

static int HSystem.CountRelation(string relationName)

Beschreibung

count_relationcount_relationCountRelationcount_relationCountRelationCountRelation liefert die Anzahl NumOfTuplesNumOfTuplesNumOfTuplesNumOfTuplesNumOfTuplesnumOfTuples der Einträge in der Relation RelationNameRelationNameRelationNameRelationNameRelationNamerelationName der HALCON-Datenbank ab dem Zeitpunkt, an dem die Datenbank mit dem Parameter 'database'"database""database""database""database""database" von set_systemset_systemSetSystemset_systemSetSystemSetSystem 'database'"database""database""database""database""database" eingeschaltet wurde. Ist die Datenbank ausgeschaltet, ist NumOfTuplesNumOfTuplesNumOfTuplesNumOfTuplesNumOfTuplesnumOfTuples 0. Zusätzlich wird in diesem Fall eine Warnung ausgegeben, falls 'do_low_error'"do_low_error""do_low_error""do_low_error""do_low_error""do_low_error" über set_systemset_systemSetSystemset_systemSetSystemSetSystem gesetzt ist. Der Zustand der Datenbank kann über den Parameter 'database'"database""database""database""database""database" mit get_systemget_systemGetSystemget_systemGetSystemGetSystem erfragt werden.

Die HALCON-Datenbank ist aus fünf Tabellen ikonischer Datentypen aufgebaut, genannt Relationen. Die Einträge in diese Relationen werden allgemein Tupel genannt (nicht zu verwechseln mit einem HALCON-Tupel, was ein Objekt-Array bezeichnet). Ist die HALCON-Datenbank eingeschaltet, beinhaltet sie die Basisrelationen für Regionendaten, Bildmatrizen und XLDs sowie die Containerrelationen für HALCON-Objekte und HALCON-Tupel (Objekt-Array). Die HALCON-Objekte Region und Bild werden aus den Elementen der Regionendaten und Bildmatrix-Relationen aufgebaut: Eine Region besteht aus einem Zeiger auf ein Tupel in der Regionendatenrelation. Ein Bild besteht aus einem Zeiger auf ein Tupel in der Regionendatenrelation (wie eine Region) und zusätzlich aus einem oder mehreren Zeigern auf Tupel der Bildmatrixrelation. Mehrkanalbilder haben mehrere Zeiger auf Bildmatrix-Tupel.

Regionen und Bilder werden als Objekte bezeichnet. Man kann eine Region als den Spezialfall eines Bildes auffassen, das keine Bildmatrizen hat. Regionendaten und Bildmatrizen werden in HALCON aus Speicherplatzgründen üblicherweise von mehreren Objekten gemeinsam verwendet. So kann es beispielsweise mehr Bilder als Bildmatrizen geben. Relevant für den Speicherbedarf sind nur die drei Basisrelationen 'image'"image""image""image""image""image", 'region'"region""region""region""region""region" und 'XLD'"XLD""XLD""XLD""XLD""XLD". Die HALCON-Objekte (Regionen und Bilder) und HALCON-Tupel bestehen nur aus Verweisen auf Regionen- und Matrixdaten und benötigen deshalb nur wenige Byte Speicher.

Mögliche Werte für RelationNameRelationNameRelationNameRelationNameRelationNamerelationName:

'image':

Bildermatrizen. Dabei kann die selbe Matrix auch Bestandteil mehrerer Bilder sein (keine redundante Speicherung).

'region':

Regionendaten. Dabei kann eine Region auch Bestandteil mehrerer Bildobjekte sein (keine redundante Speicherung).

'XLD':

eXtended Line Description: Konturen, Polygone, Parallele, Linen etc. XLD Daten haben keine Grauwerte und sind subpixelgenau.

'object':

HALCON-Bild-Objekte. Aufgebaut aus einer Region und optional einer oder mehrerer Bildmatrizen. Ein HALCON-Objekt bestehend aus einer Region wird Regionen-Objekt, mit zusätzlichen Bildmatrizen Bildobjekt bezeichnet.

'tuple':

Im Kompaktmodus werden Tupel von Bildobjekten unter einem Surrogat in dieser Relation gespeichert. Statt mit den einzelnen Objektschlüsseln wird dann nur mehr mit diesem Schlüssel gearbeitet. Es hängt von der Wirtssprache ab, ob die Objekte einzeln (z.B. C++) oder als Tupel (z.B. C) übergeben werden.

Gewisse Datenbank-Objekte werden bereits von reset_obj_dbreset_obj_dbResetObjDbreset_obj_dbResetObjDbResetObjDb angelegt und müssen daher immer vorhanden sein (die undefinierte Grauwertkomponente, die Objekte 'full' (FULL_REGION in HALCON/C) und 'empty' (EMPTY_REGION in HALCON/C) sowie die darin enthaltene leere und volle Region). reset_obj_dbreset_obj_dbResetObjDbreset_obj_dbResetObjDbResetObjDb erscheint dementsprechend bei einem Aufruf von get_channel_infoget_channel_infoGetChannelInfoget_channel_infoGetChannelInfoGetChannelInfo auch als 'creator' der vollen und leeren Region. Der Operator count_relationcount_relationCountRelationcount_relationCountRelationCountRelation dient beispielsweise dazu, den die Vollständigkeit von clear_objclear_objClearObjclear_objClearObjClearObj Operation zu überprüfen.

Parallelisierung

Parameter

RelationNameRelationNameRelationNameRelationNameRelationNamerelationName (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Interessierende Relation der HALCON-Datenbank.

Defaultwert: 'object' "object" "object" "object" "object" "object"

Werteliste: 'XLD'"XLD""XLD""XLD""XLD""XLD", 'image'"image""image""image""image""image", 'object'"object""object""object""object""object", 'region'"region""region""region""region""region", 'tuple'"tuple""tuple""tuple""tuple""tuple"

NumOfTuplesNumOfTuplesNumOfTuplesNumOfTuplesNumOfTuplesnumOfTuples (output_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Anzahl der Tupel in der Relation.

Beispiel (HDevelop)

* Close the graphics window in order to close the graphics stack,
* which would influence the measurement.
dev_close_window ()
* Enable the measurement.
set_system ('database','true')
*
count_relation ('image', I1)
count_relation ('region', R1)
count_relation ('XLD', X1)
count_relation ('object', O1)
count_relation ('tuple', T1)
*
* Result:
* I1 = 0
* R1 = 0
* X1 = 0
* O1 = 0
* T1 = 0
*
read_image (Patras, 'patras')
*
count_relation ('image', I2)
count_relation ('region', R2)
count_relation ('XLD', X2)
count_relation ('object', O2)
count_relation ('tuple', T2)
*
* I2 = 3  (three channels of the rgb image 'patras')
* R2 = 1  (the image domain of the image 'patras')
* X2 = 0  (no XLD data)
* O2 = 1  (the iconic object holding the channels and the domain)
* T2 = 0  (no empty object or object array )

Ergebnis

Ist der Parameter korrekt, dann liefert count_relationcount_relationCountRelationcount_relationCountRelationCountRelation den Wert 2 (H_MSG_TRUE). Ansonsten wird eine Fehlerbehandlung ausgeführt.

Vorgänger

reset_obj_dbreset_obj_dbResetObjDbreset_obj_dbResetObjDbResetObjDb

Nachfolger

set_systemset_systemSetSystemset_systemSetSystemSetSystem

Siehe auch

clear_objclear_objClearObjclear_objClearObjClearObj

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren