Name
disp_caltabT_disp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab — Projizieren und Zeichnen des 3D-Kalibrierkörpermodells ins Bild.
void DispCaltab(const HTuple& WindowHandle, const HTuple& CalTabDescrFile, const HTuple& CameraParam, const HTuple& CaltabPose, const HTuple& ScaleFac)
void HWindow::DispCaltab(const HString& CalTabDescrFile, const HTuple& CameraParam, const HPose& CaltabPose, double ScaleFac) const
void HWindow::DispCaltab(const char* CalTabDescrFile, const HTuple& CameraParam, const HPose& CaltabPose, double ScaleFac) const
disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab visualisiert im durch WindowHandleWindowHandleWindowHandleWindowHandleWindowHandlewindowHandle angegebenen
Fenster die Marken und die Verbindungslinien zwischen den Marken des durch
CalTabDescrFileCalTabDescrFileCalTabDescrFileCalTabDescrFileCalTabDescrFilecalTabDescrFile beschriebenen Kalibrierkörpers. Zusätzlich werden
die x- und y-Achse des Koordinatensystems der Platte auf der
Plattenoberfläche eingezeichnet. Dazu wird das
3D-Modell des Kalibrierkörpers mittels der internen (CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam) und
externen Kameraparameter (CaltabPoseCaltabPoseCaltabPoseCaltabPoseCaltabPosecaltabPose, entspricht der Lage des
Kalibrierkörpers in Kamerakoordinaten) auf die Bildebene projiziert. Das
verwendete Kameramodell (Lochkamera, telezentrische Kamera oder Zeilenkamera
mit radialer Verzeichnung) wird bei write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar
beschrieben.
Typischerweise wird disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab verwendet, um das Ergebnis
der Kamerakalibrierung (vgl. calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras oder camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration) durch
Überblendung auf das originale Bild zu verifizieren. Die aktuelle
Strichstärke kann mit set_line_widthset_line_widthSetLineWidthset_line_widthSetLineWidthSetLineWidth, die aktuelle
Zeichenfarbe mit set_colorset_colorSetColorset_colorSetColorSetColor gesetzt werden. Ferner kann der
Beschriftungsstiel der Koordinatenachsen mit set_fontset_fontSetFontset_fontSetFontSetFont verändert
werden.
Der Parameter ScaleFacScaleFacScaleFacScaleFacScaleFacscaleFac beeinflusst die Anzahl der Stützstellen,
mit der die ellipsenförmigen Konturen der Kalibrierkörpermarken
approximiert werden. Die Erhöhung der Stützstellenanzahl ist sinnvoll, wenn
der Bildbereich im Ausgabefenster vergrößert dargestellt wird (vgl.
set_partset_partSetPartset_partSetPartSetPart).
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: local (kann nur von dem Thread aufgerufen werden, in dem die Fenster-, Modell- oder Tool-Instanz erzeugt wurde).
- Wird ohne Parallelisierung verarbeitet.
Fenster, in dem die Kalibrierplatte visualisiert
werden soll.
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", 'caltab_100mm.descr'"caltab_100mm.descr""caltab_100mm.descr""caltab_100mm.descr""caltab_100mm.descr""caltab_100mm.descr", 'caltab_10mm.descr'"caltab_10mm.descr""caltab_10mm.descr""caltab_10mm.descr""caltab_10mm.descr""caltab_10mm.descr", 'caltab_200mm.descr'"caltab_200mm.descr""caltab_200mm.descr""caltab_200mm.descr""caltab_200mm.descr""caltab_200mm.descr", 'caltab_30mm.descr'"caltab_30mm.descr""caltab_30mm.descr""caltab_30mm.descr""caltab_30mm.descr""caltab_30mm.descr"
Dateiendung: .descr
Interne Kameraparameter.
Parameteranzahl: CameraParam == 8 || CameraParam == 11 || CameraParam == 12
externe Kameraparameter (3D-Lage des Kalibrierkörpers in
Kamerakoordinaten).
Parameteranzahl: 7
Skalierungsfaktor für Darstellung.
Defaultwert: 1.0
Wertevorschläge: 0.5, 1.0, 2.0, 3.0
Empfohlene Schrittweite: 0.05
Restriktion: 0.0 < ScaleFac
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and start poses
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* visualize calibration result
disp_image(Image1, WindowHandle)
set_color(WindowHandle, 'red')
disp_caltab(WindowHandle, 'caltab.descr', CameraParam, FinalPose, 1.0)
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and start poses
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* visualize calibration result
disp_image(Image1, WindowHandle)
set_color(WindowHandle, 'red')
disp_caltab(WindowHandle, 'caltab.descr', CameraParam, FinalPose, 1.0)
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and start poses
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* visualize calibration result
disp_image(Image1, WindowHandle)
set_color(WindowHandle, 'red')
disp_caltab(WindowHandle, 'caltab.descr', CameraParam, FinalPose, 1.0)
HTuple StartCamPar, NX, NY, NZ;
HTuple RCoord1, CCoord1, StartPose1;
HTuple StartPose, CameraParam, FinalPose, Errors;
// read calibration image
HImage Image1("calib-01");
// find calibration pattern
HRegion Caltab1 = Image1.FindCaltab("caltab.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
RCoord1 = Image1.FindMarksAndPose(Caltab1, "caltab.descr", StartCamPar,
128, 10, &CCoord1, &StartPose);
// read 3D positions of calibration marks
caltab_points("caltab.descr", &NX, &NY, &NZ);
// camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, StartPose,
11, &CameraParam, &FinalPose, &Errors);
// visualize calibration result
disp_image(Image1, WindowHandle);
set_color(WindowHandle, "red");
disp_caltab(WindowHandle, "caltab.descr", CameraParam, FinalPose, 1.0);
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and start poses
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* visualize calibration result
disp_image(Image1, WindowHandle)
set_color(WindowHandle, 'red')
disp_caltab(WindowHandle, 'caltab.descr', CameraParam, FinalPose, 1.0)
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and start poses
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128, 10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* visualize calibration result
disp_image(Image1, WindowHandle)
set_color(WindowHandle, 'red')
disp_caltab(WindowHandle, 'caltab.descr', CameraParam, FinalPose, 1.0)
Sind die Parameterwerte korrekt, dann liefert disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration,
read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar,
read_poseread_poseReadPoseread_poseReadPoseReadPose
find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose,
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration,
sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab,
write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar,
read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar,
create_posecreate_poseCreatePosecreate_poseCreatePoseCreatePose,
write_posewrite_poseWritePosewrite_poseWritePoseWritePose,
read_poseread_poseReadPoseread_poseReadPoseReadPose,
project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint,
get_line_of_sightget_line_of_sightGetLineOfSightget_line_of_sightGetLineOfSightGetLineOfSight
Foundation