gen_caltab
— Erzeugen der Kalibrierkörperbeschreibungsdatei und der passenden
PostScript-Datei für eine Kalibrierplatte mit rechteckiger Markenanordnung.
gen_caltab( : : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : )
gen_caltab
erzeugt die Beschreibung eines planaren
Standard-Kalibrierkörpers für HALCON mit rechteckiger Markenanordnung. Der
Kalibrierkörper hat XNum
mal YNum
schwarze, runde Marken auf
weißem Grund, die von einem schwarzen Rahmen umrandet sind.
Die Marken sind in einem rechteckigen Gitter mit YNum
und
XNum
äquidistanten Zeilen und Spalten angeordnet. Den Abstand zwischen
diesen Zeilen und Spalten legt der Parameter MarkDist
in Metern fest.
Der Durchmesser der kreisförmigen Marken kann durch den Parameter
DiameterRatio
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 CalPlateDescr
enthält die eigentliche
Kalibrierkörperbeschreibung, d.h. die Anzahl der Zeilen und Spalten des
Kalibrierkörpers, die Geometrie des Rahmens (vgl. find_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 CalPlatePSFile
enthält die korrespondierende
PostScript-Beschreibung des Kalibrierkörpers.
Je nach der erzielten Genauigkeit des verwendeten Ausgabegeräts
(z.B. Laserdrucker) stimmt der ausgedruckte Kalibrierkörper nicht genau
mit der Kalibrierkörperbeschreibungsdatei CalPlateDescr
überein.
Es müssen daher ggf. die Koordinaten der Kalibrierkörpermarken in der
Kalibrierkörperbeschreibungsdatei an die realen Maße angepasst werden!
XNum
(input_control) integer →
(integer)
Anzahl der Marken in X-Richtung.
Defaultwert: 7
Wertevorschläge: 5, 7, 9
Empfohlene Schrittweite: 1
Restriktion: XNum > 1
YNum
(input_control) integer →
(integer)
Anzahl der Marken Y-Richtung.
Defaultwert: 7
Wertevorschläge: 5, 7, 9
Empfohlene Schrittweite: 1
Restriktion: YNum > 1
MarkDist
(input_control) real →
(real)
Abstand der Marken in Meter.
Defaultwert: 0.0125
Wertevorschläge: 0.1, 0.0125, 0.00375, 0.00125
Restriktion: 0.0 < MarkDist
DiameterRatio
(input_control) real →
(real)
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
CalPlateDescr
(input_control) filename.write →
(string)
Dateiname der Kalibrierkörperbeschreibungsdatei.
Defaultwert: 'caltab.descr'
Werteliste: 'caltab.descr'
Dateiendung: .descr
CalPlatePSFile
(input_control) filename.write →
(string)
Dateiname der PostScript-Datei.
Defaultwert: 'caltab.ps'
Dateiendung: .ps
* Create calibration plate with width = 80 cm. gen_caltab( 7, 7, 0.1, 0.5, 'caltab.descr', 'caltab.ps')
Sind die Parameterwerte korrekt und konnten beide Dateien erfolgreich
geschrieben werden, dann liefert gen_caltab
den Wert TRUE.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
find_caltab
,
find_marks_and_pose
,
camera_calibration
,
disp_caltab
,
sim_caltab
Foundation