| Operatoren |
create_caltab — Erzeugen der Kalibrierkörperbeschreibungsdatei und der passenden PostScript-Datei für eine Kalibrierplatte mit hexagonaler Markenanordnung.
create_caltab( : : NumRows, MarksPerRow, Diameter, FinderRow, FinderColumn, Polarity, CalPlateDescr, CalPlatePSFile : )
create_caltab erzeugt die Kalibrierkörperbeschreibungsdatei eines Standardkalibrierkörpers für HALCON mit hexagonaler Markenanordnung. Dieser Kalibrierkörper besteht aus NumRows mal MarksPerRow kreisförmigen Marken. Diese Marken sind in einem hexagonalen Muster angeordnet, so dass jede Marke (ausgenommen die am Rand liegenden) sechs Nachbarn mit gleichem Abstand hat.
Der Durchmesser der Marken wird durch den Parameter Diameter in Metern festgelegt. Der Abstand zwischen den Zentren der horizontal benachbarten Marken ist . Der Abstand zwischen benachbarten Zeilen von Kalibriermarken ist .
Das Muster des Kalibrierkörpers enthält ein bis fünf Suchmuster. Ein Suchmuster besteht aus einem speziellen Hexagon von Marken (das heisst eine Marke und deren sechs Nachbarmarken), das vier oder sechs Marken mit einem Loch enthält. Jedes dieser bis zu fünf Suchmuster ist eindeutig und kann dazu verwendet werden die Orientierung des Kalibrierkörpers und die Lage des Suchmusters auf dem Kalibrierkörper zu bestimmen. Mindestens eines der Suchmuster muss vollständig sichtbar sein, damit der Kalibrierkörper von find_calib_object gefunden werden kann. Die Position der zentralen Marken der Suchmuster werden in FinderRow und FinderColumn angegeben. Die Länge dieser Tupel bestimmt somit die Anzahl der Suchmuster auf dem Kalibrierkörper. Zwei Suchmuster dürfen sich nicht überlappen.
Der Ursprung des Koordinatensystems des Kalibrierkörpers befindet sich in der Mitte der zentralen Marke des ersten Suchmusters.
Abhängig von Polarity sind die Marken entweder hell auf dunklem Hintergrund ('light_on_dark') oder dunkel auf hellem Hintergrund ('dark_on_light').
Die Datei CalPlateDescr enthält die Kalibrierkörperbeschreibung, die bei allen HALCON-Operationen die diesen Kalibrierkörber verwenden, angegeben werden muss (zum Beispiel in set_calib_data_calib_object oder sim_caltab). Die Dateiendung für eine Beschreibungsdatei eines Kalibrierkörpers mit hexagonaler Markenanordnung ist 'cpd'.
Eine Kalibrierkörperbeschreibung enthält Informationen über:
die Anzahl der Zeilen und Spalten des Kalibrierkörpers
die Anzahl der Marken pro Zeile und Spalte
die Verschiebung des Koordinatensystems zur Plattenoberfläche in z-Richtung
den Rand des Kalibrierkörpers
die Polarität der Marken
die Anzahl und Position der Suchmuster
die x,y-Koordinaten und den Radius von jeder Kalibriermarke
Eine Datei, die mit create_caltab erzeugt wurde, sieht z.B. folgendermaßen aus (Kommentare sind durch ein '#' am Anfang der Zeile markiert):
# Plate Description Version 3 # HALCON Version 12.0 -- Tue Aug 12 15:40:14 2014 # Description of the standard calibration plate # used for the camera calibration in HALCON # (generated by create_caltab) # # # 27 rows x 31 columns # Width, height of calibration plate [meter]: 0.167742, 0.125846 # Distance between mark centers [meter]: 0.0051613 # Number of marks in y-dimension (rows) r 27 # Number of marks in x-dimension (columns) c 31 # offset of coordinate system in z-dimension [meter] (optional): z 0 # rim of the calibration plate (min x, max y, max x, min y) [meter]: o -0.083871125 0.0645592449151841 0.086451775 -0.0645592449151841 # polarity of the marks (light or dark): p light # number of finder pattern marks: f 5 # position of the finder patterns (central mark): x y [index] 15 13 6 6 24 6 6 20 24 20 # calibration marks: x y radius [meter] # calibration marks at y = -0.0581076 m -0.07483885 -0.0581076199151841 0.001290325 -0.06967755 -0.0581076199151841 0.001290325 -0.06451625 -0.0581076199151841 0.001290325 -0.05935495 -0.0581076199151841 0.001290325 -0.05419365 -0.0581076199151841 0.001290325 -0.04903235 -0.0581076199151841 0.001290325 -0.04387105 -0.0581076199151841 0.001290325 -0.03870975 -0.0581076199151841 0.001290325 -0.03354845 -0.0581076199151841 0.001290325 -0.02838715 -0.0581076199151841 0.001290325 -0.02322585 -0.0581076199151841 0.001290325 -0.01806455 -0.0581076199151841 0.001290325 -0.01290325 -0.0581076199151841 0.001290325 -0.00774195 -0.0581076199151841 0.001290325 -0.00258065 -0.0581076199151841 0.001290325 0.00258065 -0.0581076199151841 0.001290325 0.00774195 -0.0581076199151841 0.001290325 0.01290325 -0.0581076199151841 0.001290325 0.01806455 -0.0581076199151841 0.001290325 0.02322585 -0.0581076199151841 0.001290325 0.02838715 -0.0581076199151841 0.001290325 0.03354845 -0.0581076199151841 0.001290325 0.03870975 -0.0581076199151841 0.001290325 0.04387105 -0.0581076199151841 0.001290325 0.04903235 -0.0581076199151841 0.001290325 0.05419365 -0.0581076199151841 0.001290325 0.05935495 -0.0581076199151841 0.001290325 0.06451625 -0.0581076199151841 0.001290325 0.06967755 -0.0581076199151841 0.001290325 0.07483885 -0.0581076199151841 0.001290325 0.08000015 -0.0581076199151841 0.001290325 # calibration marks at y = -0.0536378 m -0.0774195 -0.0536378029986315 0.001290325 -0.0722582 -0.0536378029986315 0.001290325 -0.0670969 -0.0536378029986315 0.001290325 -0.0619356 -0.0536378029986315 0.001290325 -0.0567743 -0.0536378029986315 0.001290325 -0.051613 -0.0536378029986315 0.001290325 -0.0464517 -0.0536378029986315 0.001290325 -0.0412904 -0.0536378029986315 0.001290325 -0.0361291 -0.0536378029986315 0.001290325 -0.0309678 -0.0536378029986315 0.001290325 -0.0258065 -0.0536378029986315 0.001290325 -0.0206452 -0.0536378029986315 0.001290325 -0.0154839 -0.0536378029986315 0.001290325 -0.0103226 -0.0536378029986315 0.001290325 -0.0051613 -0.0536378029986315 0.001290325 0 -0.0536378029986315 0.001290325 0.0051613 -0.0536378029986315 0.001290325 0.0103226 -0.0536378029986315 0.001290325 0.0154839 -0.0536378029986315 0.001290325 0.0206452 -0.0536378029986315 0.001290325 0.0258065 -0.0536378029986315 0.001290325 0.0309678 -0.0536378029986315 0.001290325 0.0361291 -0.0536378029986315 0.001290325 0.0412904 -0.0536378029986315 0.001290325 0.0464517 -0.0536378029986315 0.001290325 0.051613 -0.0536378029986315 0.001290325 0.0567743 -0.0536378029986315 0.001290325 0.0619356 -0.0536378029986315 0.001290325 0.0670969 -0.0536378029986315 0.001290325 0.0722582 -0.0536378029986315 0.001290325 0.0774195 -0.0536378029986315 0.001290325 # calibration marks at y = -0.049168 m ... # calibration marks at y = -0.0446982 m ... # calibration marks at y = -0.0402284 m ... # calibration marks at y = -0.0357585 m ... # calibration marks at y = -0.0312887 m ... # calibration marks at y = -0.0268189 m ... # calibration marks at y = -0.0223491 m ... # calibration marks at y = -0.0178793 m ... # calibration marks at y = -0.0134095 m ... # calibration marks at y = -0.00893963 m ... # calibration marks at y = -0.00446982 m ... # calibration marks at y = 0 m ... # calibration marks at y = 0.00446982 m ... # calibration marks at y = 0.00893963 m ... # calibration marks at y = 0.0134095 m ... # calibration marks at y = 0.0178793 m ... # calibration marks at y = 0.0223491 m ... # calibration marks at y = 0.0268189 m ... # calibration marks at y = 0.0312887 m ... # calibration marks at y = 0.0357585 m ... # calibration marks at y = 0.0402284 m ... # calibration marks at y = 0.0446982 m ... # calibration marks at y = 0.049168 m ... # calibration marks at y = 0.0536378 m ... # calibration marks at y = 0.0581076 m ...
Es ist zu beachten, dass hier für eine bessere Übersichtlichkeit nur die Koordinaten und Radien der Marken aus den ersten beiden Zeilen vollständig aufgeführt sind. Die entsprechenden Koordinaten und Radien der Marken in den anderen Zeilen wurden daher ausgelassen.
Die Datei CalPlatePSFile enthält die korrespondierende PostScript-Beschreibung des Kalibrierkörpers, die zum Ausdrucken des Kalibrierkörpers verwendet werden kann.
Je nach 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!
Number of rows.
Defaultwert: 27
Empfohlene Schrittweite: 1
Restriktion: NumRows > 2
Number of marks per line.
Defaultwert: 31
Empfohlene Schrittweite: 1
Restriktion: MarksPerRow > 2
Durchmesser der Marken.
Defaultwert: 0.00258065
Wertevorschläge: 0.00258065, 0.1, 0.0125, 0.00375, 0.00125
Zeilenindizes der Suchmuster.
Defaultwert: [13,6,6,20,20]
Spaltenindizes der Suchmuster.
Defaultwert: [15,6,24,6,24]
Polarität der Marken
Defaultwert: 'light_on_dark'
Wertevorschläge: 'light_on_dark', 'dark_on_light'
Dateiname der Kalibrierplattenbeschreibung.
Defaultwert: 'calplate.cpd'
Werteliste: 'calplate.cpd'
Dateiendung: .cpd
Dateiname der PostScript Datei.
Defaultwert: 'calplate.ps'
Dateiendung: .ps
* Parameters to create the descriptor for the 160mm wide calibration plate
create_caltab (27, 31, 0.00258065, [13, 6, 6, 20, 20], [15, 6, 24, 6, 24], \
'light_on_dark', 'calplate.cpd', 'caltab.ps')
Sind die Parameterwerte korrekt und konnten beide Dateien erfolgreich geschrieben werden, dann liefert create_caltab den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
find_caltab, find_marks_and_pose, camera_calibration, disp_caltab, sim_caltab
Foundation
| Operatoren |