gen_caltabgen_caltabGenCaltabGenCaltabgen_caltab (Operator)

Name

gen_caltabgen_caltabGenCaltabGenCaltabgen_caltab — 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)

def gen_caltab(xnum: int, ynum: int, mark_dist: float, diameter_ratio: float, cal_plate_descr: str, cal_plate_psfile: str) -> None

Beschreibung

gen_caltabgen_caltabGenCaltabGenCaltabGenCaltabgen_caltab erzeugt die Beschreibung eines planaren Standard-Kalibrierkörpers für HALCON mit rechteckiger Markenanordnung. Der Kalibrierkörper hat XNumXNumXNumXNumXNumxnum mal YNumYNumYNumYNumYNumynum 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 YNumYNumYNumYNumYNumynum und XNumXNumXNumXNumXNumxnum äquidistanten Zeilen und Spalten angeordnet. Den Abstand zwischen diesen Zeilen und Spalten legt der Parameter MarkDistMarkDistMarkDistMarkDistmarkDistmark_dist in Metern fest. Der Durchmesser der kreisförmigen Marken kann durch den Parameter DiameterRatioDiameterRatioDiameterRatioDiameterRatiodiameterRatiodiameter_ratio 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 CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescrcal_plate_descr enthält die eigentliche Kalibrierkörperbeschreibung, d.h. die Anzahl der Zeilen und Spalten des Kalibrierkörpers, die Geometrie des Rahmens (vgl. find_caltabfind_caltabFindCaltabFindCaltabFindCaltabfind_caltab) 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 CalPlatePSFileCalPlatePSFileCalPlatePSFileCalPlatePSFilecalPlatePSFilecal_plate_psfile 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 CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescrcal_plate_descr ü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

XNumXNumXNumXNumXNumxnum (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der Marken in X-Richtung.

Defaultwert: 7

Wertevorschläge: 5, 7, 9

Empfohlene Schrittweite: 1

Restriktion: XNum > 1

YNumYNumYNumYNumYNumynum (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl der Marken Y-Richtung.

Defaultwert: 7

Wertevorschläge: 5, 7, 9

Empfohlene Schrittweite: 1

Restriktion: YNum > 1

MarkDistMarkDistMarkDistMarkDistmarkDistmark_dist (input_control)  real HTuplefloatHTupleHtuple (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

DiameterRatioDiameterRatioDiameterRatioDiameterRatiodiameterRatiodiameter_ratio (input_control)  real HTuplefloatHTupleHtuple (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

CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescrcal_plate_descr (input_control)  filename.write HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Dateiname der Kalibrierkörperbeschreibungsdatei.

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

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

Dateiendung: .descr

CalPlatePSFileCalPlatePSFileCalPlatePSFileCalPlatePSFilecalPlatePSFilecal_plate_psfile (input_control)  filename.write HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Dateiname der PostScript-Datei.

Defaultwert: 'caltab.ps' "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 (C++)

// 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_caltabGenCaltabGenCaltabGenCaltabgen_caltab den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par, caltab_pointscaltab_pointsCaltabPointsCaltabPointsCaltabPointscaltab_points

Alternativen

create_caltabcreate_caltabCreateCaltabCreateCaltabCreateCaltabcreate_caltab

Siehe auch

find_caltabfind_caltabFindCaltabFindCaltabFindCaltabfind_caltab, find_marks_and_posefind_marks_and_poseFindMarksAndPoseFindMarksAndPoseFindMarksAndPosefind_marks_and_pose, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltabdisp_caltab, sim_caltabsim_caltabSimCaltabSimCaltabSimCaltabsim_caltab

Modul

Foundation