gen_caltabgen_caltabGenCaltabGenCaltab (Operator)

Name

gen_caltabgen_caltabGenCaltabGenCaltab — Erzeugen der Kalibrierkörperbeschreibungsdatei und der passenden PostScript-Datei für eine Kalibrierplatte mit rechteckiger Markenanordnung.

Signatur

gen_caltab( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : )

Herror gen_caltab(const Hlong XNum, const Hlong YNum, double MarkDist, double DiameterRatio, const char* CalPlateDescr, const char* CalPlatePSFile)

Herror T_gen_caltab(const Htuple XNum, const Htuple YNum, const Htuple MarkDist, const Htuple DiameterRatio, const Htuple CalPlateDescr, const Htuple CalPlatePSFile)

void GenCaltab(const HTuple& XNum, const HTuple& YNum, const HTuple& MarkDist, const HTuple& DiameterRatio, const HTuple& CalPlateDescr, const HTuple& CalPlatePSFile)

static void HMisc::GenCaltab(Hlong XNum, Hlong YNum, double MarkDist, double DiameterRatio, const HString& CalPlateDescr, const HString& CalPlatePSFile)

static void HMisc::GenCaltab(Hlong XNum, Hlong YNum, double MarkDist, double DiameterRatio, const char* CalPlateDescr, const char* CalPlatePSFile)

static void HMisc::GenCaltab(Hlong XNum, Hlong YNum, double MarkDist, double DiameterRatio, const wchar_t* CalPlateDescr, const wchar_t* CalPlatePSFile)   (Nur Windows)

static void HOperatorSet.GenCaltab(HTuple XNum, HTuple YNum, HTuple markDist, HTuple diameterRatio, HTuple calPlateDescr, HTuple calPlatePSFile)

static void HMisc.GenCaltab(int XNum, int YNum, double markDist, double diameterRatio, string calPlateDescr, string calPlatePSFile)

Beschreibung

gen_caltabgen_caltabGenCaltabGenCaltabGenCaltab erzeugt die Beschreibung eines planaren Standard-Kalibrierkörpers für HALCON mit rechteckiger Markenanordnung. Der Kalibrierkörper hat XNumXNumXNumXNumXNum mal YNumYNumYNumYNumYNum schwarze, runde Marken auf weißem Grund, die von einem schwarzen Rahmen umrandet sind.

image/svg+xml
Ein Standard-HALCON-Kalibrierkörper mit rechteckiger Markenanordnung

Die Marken sind in einem rechteckigen Gitter mit YNumYNumYNumYNumYNum und XNumXNumXNumXNumXNum äquidistanten Zeilen und Spalten angeordnet. Den Abstand zwischen diesen Zeilen und Spalten legt der Parameter MarkDistMarkDistMarkDistMarkDistmarkDist in Metern fest. Der Durchmesser der kreisförmigen Marken kann durch den Parameter DiameterRatioDiameterRatioDiameterRatioDiameterRatiodiameterRatio beeinflusst werden und ist über die Gleichung definiert. Wird nun beispielsweise ein Markenabstand von 0.01 m verwendet und das Verhältnis von Markendurchmesser zu Markenabstand auf 0.5 gesetzt, so umfasst der äußere schwarze Rand 8 cm und der Radius einer einzelnen Marke beträgt 2.5 mm. Das Kalibrierkörperkoordinatensystem ist im Mittelpunkt der Kalibrierkörperoberfläche platziert, die z-Achse zeigt in den Kalibrierkörper hinein, die x-Achse nach rechts und die y-Achse nach unten.

Der schwarze Rahmen der Kalibrierplatte enthält in der linken oberen Ecke eine dreieckige schwarze Orientierungsmarkierung, mit welcher die Lage der Kalibrierplatte eindeutig bestimmt werden kann. Die Breite und die Höhe der generierten Kalibrierplatte lassen sich mit den folgenden Formeln ermitteln:

Die Datei CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr enthält die eigentliche Kalibrierkörperbeschreibung, d.h. die Anzahl der Zeilen und Spalten des Kalibrierkörpers, die Geometrie des Rahmens (vgl. find_caltabfind_caltabFindCaltabFindCaltabFindCaltab) und der dreieckigen Orientierungsmarke, eine Verschiebung des Koordinatensystems zur Plattenoberfläche in z-Richtung und die Koordinaten und den Radius aller Kalibrierkörpermarken im Kalibrierkörperkoordinatensystem. Die Definition der Orientierungsmarke t und des Offsets z ist optional und kann auskommentiert werden. Die Dateiendung für die Kalibrierkörperbeschreibung ist in HALCON 'descr'. Eine solche Datei hat z.B. folgendes Aussehen (Kommentare werden durch ein '#' am Zeilenanfang markiert): # Plate Description Version 2 # HALCON Version 7.1 -- Fri Jun 24 16:41:00 2005 # Description of the standard calibration plate # used for the camera calibration in HALCON # (generated by gen_caltab) # # # 7 rows x 7 columns # Width, height of the black frame [meter]: 0.1, 0.1 # Distance between mark centers [meter]: 0.0125 # Number of marks in y-dimension (rows) r 7 # Number of marks in x-dimension (columns) c 7 # offset of coordinate system in z-dimension [meter] (optional): z 0 # Rectangular border (rim and black frame) of calibration plate # rim of the calibration plate (min x, max y, max x, min y) [meter]: o -0.05125 0.05125 0.05125 -0.05125 # outer border of the black frame (min x, max y, max x, min y) [meter]: i -0.05 0.05 0.05 -0.05 # triangular corner mark given by two corner points (x,y, x,y) [meter] # (optional): t -0.05 -0.0375 -0.0375 -0.05 # width of the black frame [meter]: w 0.003125 # calibration marks: x y radius [meter] # calibration marks at y = -0.0375 m -0.0375 -0.0375 0.003125 -0.025 -0.0375 0.003125 -0.0125 -0.0375 0.003125 -3.46945e-018 -0.0375 0.003125 0.0125 -0.0375 0.003125 0.025 -0.0375 0.003125 0.0375 -0.0375 0.003125 # calibration marks at y = -0.025 m -0.0375 -0.025 0.003125 -0.025 -0.025 0.003125 -0.0125 -0.025 0.003125 -3.46945e-018 -0.025 0.003125 0.0125 -0.025 0.003125 0.025 -0.025 0.003125 0.0375 -0.025 0.003125 # calibration marks at y = -0.0125 m -0.0375 -0.0125 0.003125 -0.025 -0.0125 0.003125 -0.0125 -0.0125 0.003125 -3.46945e-018 -0.0125 0.003125 0.0125 -0.0125 0.003125 0.025 -0.0125 0.003125 0.0375 -0.0125 0.003125 # calibration marks at y = -3.46945e-018 m -0.0375 -3.46945e-018 0.003125 -0.025 -3.46945e-018 0.003125 -0.0125 -3.46945e-018 0.003125 -3.46945e-018 -3.46945e-018 0.003125 0.0125 -3.46945e-018 0.003125 0.025 -3.46945e-018 0.003125 0.0375 -3.46945e-018 0.003125 # calibration marks at y = 0.0125 m -0.0375 0.0125 0.003125 -0.025 0.0125 0.003125 -0.0125 0.0125 0.003125 -3.46945e-018 0.0125 0.003125 0.0125 0.0125 0.003125 0.025 0.0125 0.003125 0.0375 0.0125 0.003125 # calibration marks at y = 0.025 m -0.0375 0.025 0.003125 -0.025 0.025 0.003125 -0.0125 0.025 0.003125 -3.46945e-018 0.025 0.003125 0.0125 0.025 0.003125 0.025 0.025 0.003125 0.0375 0.025 0.003125 # calibration marks at y = 0.0375 m -0.0375 0.0375 0.003125 -0.025 0.0375 0.003125 -0.0125 0.0375 0.003125 -3.46945e-018 0.0375 0.003125 0.0125 0.0375 0.003125 0.025 0.0375 0.003125 0.0375 0.0375 0.003125 Die Datei CalPlatePSFileCalPlatePSFileCalPlatePSFileCalPlatePSFilecalPlatePSFile enthält die korrespondierende PostScript-Beschreibung des Kalibrierkörpers.

Achtung

Je nach der erzielten Genauigkeit des verwendeten Ausgabegeräts (z.B. Laserdrucker) stimmt der ausgedruckte Kalibrierkörper nicht genau mit der Kalibrierkörperbeschreibungsdatei CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr überein. Es müssen daher ggf. die Koordinaten der Kalibrierkörpermarken in der Kalibrierkörperbeschreibungsdatei an die realen Maße angepasst werden!

Ausführungsinformationen

Parameter

XNumXNumXNumXNumXNum (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der Marken in X-Richtung.

Defaultwert: 7

Wertevorschläge: 5, 7, 9

Empfohlene Schrittweite: 1

Restriktion: XNum > 1

YNumYNumYNumYNumYNum (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der Marken Y-Richtung.

Defaultwert: 7

Wertevorschläge: 5, 7, 9

Empfohlene Schrittweite: 1

Restriktion: YNum > 1

MarkDistMarkDistMarkDistMarkDistmarkDist (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Abstand der Marken in Meter.

Defaultwert: 0.0125

Wertevorschläge: 0.1, 0.0125, 0.00375, 0.00125

Restriktion: 0.0 < MarkDist

DiameterRatioDiameterRatioDiameterRatioDiameterRatiodiameterRatio (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Verhältnis des Markendurchmessers zum Markenabstand.

Defaultwert: 0.5

Wertevorschläge: 0.5, 0.55, 0.6, 0.65

Restriktion: 0.0 < DiameterRatio < 1.0

CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr (input_control)  filename.write HTupleHTupleHtuple (string) (string) (HString) (char*)

Dateiname der Kalibrierkörperbeschreibungsdatei.

Defaultwert: 'caltab.descr' "caltab.descr" "caltab.descr" "caltab.descr" "caltab.descr"

Werteliste: 'caltab.descr'"caltab.descr""caltab.descr""caltab.descr""caltab.descr"

Dateiendung: .descr

CalPlatePSFileCalPlatePSFileCalPlatePSFileCalPlatePSFilecalPlatePSFile (input_control)  filename.write HTupleHTupleHtuple (string) (string) (HString) (char*)

Dateiname der PostScript-Datei.

Defaultwert: 'caltab.ps' "caltab.ps" "caltab.ps" "caltab.ps" "caltab.ps"

Dateiendung: .ps

Beispiel (HDevelop)

* Create calibration plate with width = 80 cm.
gen_caltab( 7, 7, 0.1, 0.5, 'caltab.descr', 'caltab.ps')

Beispiel (HDevelop)

* Create calibration plate with width = 80 cm.
gen_caltab( 7, 7, 0.1, 0.5, 'caltab.descr', 'caltab.ps')

Beispiel (HDevelop)

* Create calibration plate with width = 80 cm.
gen_caltab( 7, 7, 0.1, 0.5, 'caltab.descr', 'caltab.ps')

Beispiel (HDevelop)

* Create calibration plate with width = 80 cm.
gen_caltab( 7, 7, 0.1, 0.5, 'caltab.descr', 'caltab.ps')

Beispiel (HDevelop)

* Create calibration plate with width = 80 cm.
gen_caltab( 7, 7, 0.1, 0.5, 'caltab.descr', 'caltab.ps')

Ergebnis

Sind die Parameterwerte korrekt und konnten beide Dateien erfolgreich geschrieben werden, dann liefert gen_caltabgen_caltabGenCaltabGenCaltabGenCaltab den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

read_cam_parread_cam_parReadCamParReadCamParReadCamPar, caltab_pointscaltab_pointsCaltabPointsCaltabPointsCaltabPoints

Alternativen

create_caltabcreate_caltabCreateCaltabCreateCaltabCreateCaltab

Siehe auch

find_caltabfind_caltabFindCaltabFindCaltabFindCaltab, find_marks_and_posefind_marks_and_poseFindMarksAndPoseFindMarksAndPoseFindMarksAndPose, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab, sim_caltabsim_caltabSimCaltabSimCaltabSimCaltab

Modul

Foundation