Name
caltab_pointsT_caltab_pointsCaltabPointscaltab_pointsCaltabPointsCaltabPoints — Lesen der Markenmittelpunkte aus einer Kalibrierkörperbeschreibungsdatei.
Herror T_caltab_points(const Htuple CalPlateDescr, Htuple* X, Htuple* Y, Htuple* Z)
Herror caltab_points(const HTuple& CalPlateDescr, HTuple* X, HTuple* Y, HTuple* Z)
caltab_pointscaltab_pointsCaltabPointscaltab_pointsCaltabPointsCaltabPoints liest die Markenmittelpunkte aus der
Kalibrierkörperbeschreibungsdatei CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr (siehe
gen_caltabgen_caltabGenCaltabgen_caltabGenCaltabGenCaltab für Kalibrierplatten mit rechteckiger Markenanordnung und
create_caltabcreate_caltabCreateCaltabcreate_caltabCreateCaltabCreateCaltab für Kalibrierplatten mit hexagonaler Markenanordnung)
und liefert ihre Koordinaten in XXXXXx, YYYYYy
und ZZZZZz 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 recheckiger 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_pointsCaltabPointscaltab_pointsCaltabPointsCaltabPoints ausgegebenen Markenmittelpunkte dienen
typischerweise als Eingabe-Parameter für den Operator
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration. 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_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose)
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"
"calplate.cpd"
Werteliste: 'calplate.cpd'"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_20mm.cpd", 'calplate_40mm.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""calplate_80mm.cpd", 'caltab.descr'"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""caltab_160mm.cpd"
Dateiendung: .cpd, .descr
XXXXXx (output_control) real-array → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
X-Koordinaten der Markenmittelpunkte im
Koordinatensystem des Kalibrierkörpers.
YYYYYy (output_control) real-array → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Y-Koordinaten der Markenmittelpunkte im
Koordinatensystem des Kalibrierkörpers.
ZZZZZz (output_control) real-array → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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 := [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 := [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 := [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)
HTuple StartCamPar, NX, NY, NZ;
HTuple RCoord, CCoord, StartPose;
HTuple StartPose, CameraParam, FinalPose, Errors;
// Read calibration image
HImage Image("calib/calib-3d-coord-03");
// Find calibration pattern
HRegion CalPlate1 = Image.FindCaltab("caltab_100mm.descr", 3, 112, 5);
// Find calibration marks and start pose
StartCamPar[7] = 576; // ImageHeight
StartCamPar[6] = 768; // ImageWidth
StartCamPar[5] = 288; // Cy
StartCamPar[4] = 384; // Cx
StartCamPar[3] = 0.000011; // Sy
StartCamPar[2] = 0.000011; // Sx
StartCamPar[1] = 0.0; // Kappa
StartCamPar[0] = 0.008; // Focus
RCoord = Image.FindMarksAndPose(CalPlate, "caltab_100mm.descr", StartCamPar,
128, 10, &CCoord, &StartPose);
// Read 3D positions of calibration marks
caltab_points("caltab_100mm.descr", &NX, &NY, &NZ);
// Calibrate camera
camera_calibration(NX, NY, NZ, RCoord, CCoord, StartCamPar, StartPose,
11, &CameraParam, &FinalPose, &Errors);
// Visualize calibration result
disp_image(Image, WindowHandle);
disp_caltab(WindowHandle, "caltab_100mm.descr, 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 := [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 := [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
CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr erfolgreich gelesen werden, dann liefert
caltab_pointscaltab_pointsCaltabPointscaltab_pointsCaltabPointsCaltabPoints den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration
find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab,
find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose,
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration,
disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab,
sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab,
project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint,
get_line_of_sightget_line_of_sightGetLineOfSightget_line_of_sightGetLineOfSightGetLineOfSight,
gen_caltabgen_caltabGenCaltabgen_caltabGenCaltabGenCaltab
Foundation