Name
caltab_pointsT_caltab_pointsCaltabPointsCaltabPoints — Lesen der Markenmittelpunkte aus einer Kalibrierkörperbeschreibungsdatei.
Herror T_caltab_points(const Htuple CalPlateDescr, Htuple* X, Htuple* Y, Htuple* Z)
caltab_pointscaltab_pointsCaltabPointsCaltabPointsCaltabPoints liest die Markenmittelpunkte aus der
Kalibrierkörperbeschreibungsdatei CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr (siehe
gen_caltabgen_caltabGenCaltabGenCaltabGenCaltab für Kalibrierplatten mit rechteckiger Markenanordnung und
create_caltabcreate_caltabCreateCaltabCreateCaltabCreateCaltab für Kalibrierplatten mit hexagonaler Markenanordnung)
und liefert ihre Koordinaten in XXXXx, YYYYy
und ZZZZz zurück. Die Markenmittelpunkte liegen als 3D-Koordinaten im
Kalibrierkörperkoordinatensystem vor und stellen damit das 3D-Modell des
Kalibrierkörpers dar. Das Kalibrierkörperkoordinatensystem ist für
Kalibrierplatten mit rechteckiger Markenanordnung im Mittelpunkt der
Kalibrierkörperoberfläche platziert. Für Kalibrierplatten mit hexagonaler
Markenanordnung befindet sich der Ursprung in der Mitte der zentralen
Marke des ersten Suchmusters.
Die z-Achse zeigt in den Kalibrierkörper hinein, die x-Achse nach rechts
und die y-Achse nach unten.
Die von caltab_pointscaltab_pointsCaltabPointsCaltabPointsCaltabPoints ausgegebenen Markenmittelpunkte dienen
typischerweise als Eingabe-Parameter für den Operator
camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration. Dieser Operator projiziert die Modellpunkte in
das Bild, minimiert die Distanz zwischen den projizierten Modellpunkten und
den im Bild beobachteten 2D-Koordinaten (vgl. find_marks_and_posefind_marks_and_poseFindMarksAndPoseFindMarksAndPoseFindMarksAndPose)
und ermittelt so die genauen Werte für die gesuchten internen und externen
Kameraparameter.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Dateiname der Kalibrierkörperbeschreibungsdatei.
Defaultwert:
'calplate.cpd'
"calplate.cpd"
"calplate.cpd"
"calplate.cpd"
"calplate.cpd"
Werteliste: 'calplate.cpd'"calplate.cpd""calplate.cpd""calplate.cpd""calplate.cpd", 'calplate_20mm.cpd'"calplate_20mm.cpd""calplate_20mm.cpd""calplate_20mm.cpd""calplate_20mm.cpd", 'calplate_40mm.cpd'"calplate_40mm.cpd""calplate_40mm.cpd""calplate_40mm.cpd""calplate_40mm.cpd", 'calplate_80mm.cpd'"calplate_80mm.cpd""calplate_80mm.cpd""calplate_80mm.cpd""calplate_80mm.cpd", 'caltab.descr'"caltab.descr""caltab.descr""caltab.descr""caltab.descr", 'caltab_160mm.cpd'"caltab_160mm.cpd""caltab_160mm.cpd""caltab_160mm.cpd""caltab_160mm.cpd"
Dateiendung: .cpd, .descr
XXXXx (output_control) real-array → HTupleHTupleHtuple (real) (double) (double) (double)
X-Koordinaten der Markenmittelpunkte im
Koordinatensystem des Kalibrierkörpers.
YYYYy (output_control) real-array → HTupleHTupleHtuple (real) (double) (double) (double)
Y-Koordinaten der Markenmittelpunkte im
Koordinatensystem des Kalibrierkörpers.
ZZZZz (output_control) real-array → HTupleHTupleHtuple (real) (double) (double) (double)
Z-Koordinaten der Markenmittelpunkte im
Koordinatensystem des Kalibrierkörpers.
* Read calibration image.
read_image(Image, 'calib/calib-3d-coord-03')
CalTabDescr := 'caltab_100mm.descr'
* Find calibration pattern.
find_caltab(Image, CalPlate1, CalTabDescr, 3, 112, 5)
* Find calibration marks and start poses.
StartCamPar := ['area_scan_division', 0.008, 0.0, 0.000011, 0.000011, \
384, 288, 768, 576]
find_marks_and_pose(Image,CalPlate1,CalTabDescr, StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* Read 3D positions of calibration marks.
caltab_points(CalTabDescr, NX, NY, NZ)
* Calibrate camera.
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 'all', CameraParam, FinalPose, Errors)
* Visualize calibration result.
dev_display(Image)
disp_caltab(WindowHandle, CalTabDescr, CameraParam, FinalPose, 1.0)
* Read calibration image.
read_image(Image, 'calib/calib-3d-coord-03')
CalTabDescr := 'caltab_100mm.descr'
* Find calibration pattern.
find_caltab(Image, CalPlate1, CalTabDescr, 3, 112, 5)
* Find calibration marks and start poses.
StartCamPar := ['area_scan_division', 0.008, 0.0, 0.000011, 0.000011, \
384, 288, 768, 576]
find_marks_and_pose(Image,CalPlate1,CalTabDescr, StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* Read 3D positions of calibration marks.
caltab_points(CalTabDescr, NX, NY, NZ)
* Calibrate camera.
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 'all', CameraParam, FinalPose, Errors)
* Visualize calibration result.
dev_display(Image)
disp_caltab(WindowHandle, CalTabDescr, CameraParam, FinalPose, 1.0)
* Read calibration image.
read_image(Image, 'calib/calib-3d-coord-03')
CalTabDescr := 'caltab_100mm.descr'
* Find calibration pattern.
find_caltab(Image, CalPlate1, CalTabDescr, 3, 112, 5)
* Find calibration marks and start poses.
StartCamPar := ['area_scan_division', 0.008, 0.0, 0.000011, 0.000011, \
384, 288, 768, 576]
find_marks_and_pose(Image,CalPlate1,CalTabDescr, StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* Read 3D positions of calibration marks.
caltab_points(CalTabDescr, NX, NY, NZ)
* Calibrate camera.
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 'all', CameraParam, FinalPose, Errors)
* Visualize calibration result.
dev_display(Image)
disp_caltab(WindowHandle, CalTabDescr, CameraParam, FinalPose, 1.0)
* Read calibration image.
read_image(Image, 'calib/calib-3d-coord-03')
CalTabDescr := 'caltab_100mm.descr'
* Find calibration pattern.
find_caltab(Image, CalPlate1, CalTabDescr, 3, 112, 5)
* Find calibration marks and start poses.
StartCamPar := ['area_scan_division', 0.008, 0.0, 0.000011, 0.000011, \
384, 288, 768, 576]
find_marks_and_pose(Image,CalPlate1,CalTabDescr, StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* Read 3D positions of calibration marks.
caltab_points(CalTabDescr, NX, NY, NZ)
* Calibrate camera.
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 'all', CameraParam, FinalPose, Errors)
* Visualize calibration result.
dev_display(Image)
disp_caltab(WindowHandle, CalTabDescr, CameraParam, FinalPose, 1.0)
* Read calibration image.
read_image(Image, 'calib/calib-3d-coord-03')
CalTabDescr := 'caltab_100mm.descr'
* Find calibration pattern.
find_caltab(Image, CalPlate1, CalTabDescr, 3, 112, 5)
* Find calibration marks and start poses.
StartCamPar := ['area_scan_division', 0.008, 0.0, 0.000011, 0.000011, \
384, 288, 768, 576]
find_marks_and_pose(Image,CalPlate1,CalTabDescr, StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* Read 3D positions of calibration marks.
caltab_points(CalTabDescr, NX, NY, NZ)
* Calibrate camera.
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 'all', CameraParam, FinalPose, Errors)
* Visualize calibration result.
dev_display(Image)
disp_caltab(WindowHandle, CalTabDescr, CameraParam, FinalPose, 1.0)
Sind die Parameterwerte korrekt und konnte die Datei
CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr erfolgreich gelesen werden, dann liefert
caltab_pointscaltab_pointsCaltabPointsCaltabPointsCaltabPoints den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration
find_caltabfind_caltabFindCaltabFindCaltabFindCaltab,
find_marks_and_posefind_marks_and_poseFindMarksAndPoseFindMarksAndPoseFindMarksAndPose,
camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration,
disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab,
sim_caltabsim_caltabSimCaltabSimCaltabSimCaltab,
project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint,
get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSight,
gen_caltabgen_caltabGenCaltabGenCaltabGenCaltab
Foundation