sim_caltab T_sim_caltab SimCaltab SimCaltab (Operator)
Name
sim_caltab T_sim_caltab SimCaltab SimCaltab
— Simulieren eines Bildes mit Kalibrierkörper.
Signatur
void SimCaltab (HObject* SimImage , const HTuple& CalPlateDescr , const HTuple& CameraParam , const HTuple& CalPlatePose , const HTuple& GrayBackground , const HTuple& GrayPlate , const HTuple& GrayMarks , const HTuple& ScaleFac )
void HImage ::SimCaltab (const HString& CalPlateDescr , const HCamPar& CameraParam , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac )
void HImage ::SimCaltab (const char* CalPlateDescr , const HCamPar& CameraParam , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac )
void HImage ::SimCaltab (const wchar_t* CalPlateDescr , const HCamPar& CameraParam , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac )
(Nur Windows)
HImage HCamPar ::SimCaltab (const HString& CalPlateDescr , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HCamPar ::SimCaltab (const char* CalPlateDescr , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HCamPar ::SimCaltab (const wchar_t* CalPlateDescr , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
(Nur Windows)
HImage HPose ::SimCaltab (const HString& CalPlateDescr , const HCamPar& CameraParam , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HPose ::SimCaltab (const char* CalPlateDescr , const HCamPar& CameraParam , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HPose ::SimCaltab (const wchar_t* CalPlateDescr , const HCamPar& CameraParam , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
(Nur Windows)
static void HOperatorSet .SimCaltab (out HObject simImage , HTuple calPlateDescr , HTuple cameraParam , HTuple calPlatePose , HTuple grayBackground , HTuple grayPlate , HTuple grayMarks , HTuple scaleFac )
void HImage .SimCaltab (string calPlateDescr , HCamPar cameraParam , HPose calPlatePose , int grayBackground , int grayPlate , int grayMarks , double scaleFac )
HImage HCamPar .SimCaltab (string calPlateDescr , HPose calPlatePose , int grayBackground , int grayPlate , int grayMarks , double scaleFac )
HImage HPose .SimCaltab (string calPlateDescr , HCamPar cameraParam , int grayBackground , int grayPlate , int grayMarks , double scaleFac )
Beschreibung
sim_caltab sim_caltab SimCaltab SimCaltab SimCaltab
dient der Simulation eines Kalibrierbildes.
Dazu wird die Kalibrierkörperbeschreibung aus der Datei
CalPlateDescr CalPlateDescr CalPlateDescr CalPlateDescr calPlateDescr
eingelesen und die darin enthaltende
3D-Beschreibung mit Hilfe der angegebenen Kameraparameter, d.h., den
internen Kameraparametern CameraParam CameraParam CameraParam CameraParam cameraParam
und externen Kameraparametern
CalPlatePose CalPlatePose CalPlatePose CalPlatePose calPlatePose
, auf die Bildebene projiziert (vgl.
project_3d_point project_3d_point Project3dPoint Project3dPoint Project3dPoint
).
Die 3D-Lage CalPlatePose CalPlatePose CalPlatePose CalPlatePose calPlatePose
wird in der Form
erwartet. Dabei steht
ccs für das Kamerakoordinatensystem und
wcs für das Weltkoordinatensystem (siehe auch
Transformationen / Posen und
„Solution Guide III-C - 3D Vision“
).
In dem simulierten Bild ist nur der Kalibrierkörper abgebildet. Der
Bildhintergrund wird mit dem Grauwert GrayBackground GrayBackground GrayBackground GrayBackground grayBackground
, der
Hintergrund des Kalibrierkörpers mit GrayPlate GrayPlate GrayPlate GrayPlate grayPlate
und die
Kalibrierkörpermarken werden mit GrayMarks GrayMarks GrayMarks GrayMarks grayMarks
belegt. Der
Parameter ScaleFac ScaleFac ScaleFac ScaleFac scaleFac
beeinflusst die Anzahl der Stützstellen,
mit der die ellipsenförmigen Konturen der Kalibrierkörpermarken
approximiert werden (vgl. disp_caltab disp_caltab DispCaltab DispCaltab DispCaltab
). Die Erhöhung der
Stützstellenanzahl bewirkt daher eine genauere Bestimmung der
Markenbegrenzung, erhöht aber gleichzeitig die Rechenzeit. Für jedes
Pixel des simulierten Bildes, das eine solche subpixelgenaue
Markenbegrenzung berührt, wird der Grauwert linear zwischen
GrayMarks GrayMarks GrayMarks GrayMarks grayMarks
und GrayPlate GrayPlate GrayPlate GrayPlate grayPlate
anhand des Verhältnisses
Innerhalb/Außerhalb gesetzt.
Mit dem Operator sim_caltab sim_caltab SimCaltab SimCaltab SimCaltab
lassen sich synthetische
Kalibrierbilder (mit bekannten Kameraparametern!) erzeugen, mit
denen man die Güte des Kalibrieralgorithmus (vgl.
Kalibrierung ) testen
kann.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf interner Datenebene.
Parameter
SimImage SimImage SimImage SimImage simImage
(output_object) image →
object HImage HImage Hobject * (byte)
Simuliertes Kalibrierbild.
CalPlateDescr CalPlateDescr CalPlateDescr CalPlateDescr calPlateDescr
(input_control) filename.read →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Dateiname der Kalibrierkörperbeschreibungsdatei.
Defaultwert:
'calplate_320mm.cpd'
"calplate_320mm.cpd"
"calplate_320mm.cpd"
"calplate_320mm.cpd"
"calplate_320mm.cpd"
Werteliste: 'calplate_10mm.cpd' "calplate_10mm.cpd" "calplate_10mm.cpd" "calplate_10mm.cpd" "calplate_10mm.cpd" , 'calplate_1200mm.cpd' "calplate_1200mm.cpd" "calplate_1200mm.cpd" "calplate_1200mm.cpd" "calplate_1200mm.cpd" , 'calplate_160mm.cpd' "calplate_160mm.cpd" "calplate_160mm.cpd" "calplate_160mm.cpd" "calplate_160mm.cpd" , 'calplate_20mm.cpd' "calplate_20mm.cpd" "calplate_20mm.cpd" "calplate_20mm.cpd" "calplate_20mm.cpd" , 'calplate_20mm_dark_on_light.cpd' "calplate_20mm_dark_on_light.cpd" "calplate_20mm_dark_on_light.cpd" "calplate_20mm_dark_on_light.cpd" "calplate_20mm_dark_on_light.cpd" , 'calplate_320mm.cpd' "calplate_320mm.cpd" "calplate_320mm.cpd" "calplate_320mm.cpd" "calplate_320mm.cpd" , 'calplate_40mm.cpd' "calplate_40mm.cpd" "calplate_40mm.cpd" "calplate_40mm.cpd" "calplate_40mm.cpd" , 'calplate_40mm_dark_on_light.cpd' "calplate_40mm_dark_on_light.cpd" "calplate_40mm_dark_on_light.cpd" "calplate_40mm_dark_on_light.cpd" "calplate_40mm_dark_on_light.cpd" , 'calplate_5mm.cpd' "calplate_5mm.cpd" "calplate_5mm.cpd" "calplate_5mm.cpd" "calplate_5mm.cpd" , 'calplate_640mm.cpd' "calplate_640mm.cpd" "calplate_640mm.cpd" "calplate_640mm.cpd" "calplate_640mm.cpd" , 'calplate_80mm.cpd' "calplate_80mm.cpd" "calplate_80mm.cpd" "calplate_80mm.cpd" "calplate_80mm.cpd" , 'calplate_80mm_dark_on_light.cpd' "calplate_80mm_dark_on_light.cpd" "calplate_80mm_dark_on_light.cpd" "calplate_80mm_dark_on_light.cpd" "calplate_80mm_dark_on_light.cpd" , '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_200mm.descr' "caltab_200mm.descr" "caltab_200mm.descr" "caltab_200mm.descr" "caltab_200mm.descr" , 'caltab_2500um.descr' "caltab_2500um.descr" "caltab_2500um.descr" "caltab_2500um.descr" "caltab_2500um.descr" , 'caltab_30mm.descr' "caltab_30mm.descr" "caltab_30mm.descr" "caltab_30mm.descr" "caltab_30mm.descr" , 'caltab_650um.descr' "caltab_650um.descr" "caltab_650um.descr" "caltab_650um.descr" "caltab_650um.descr" , 'caltab_6mm.descr' "caltab_6mm.descr" "caltab_6mm.descr" "caltab_6mm.descr" "caltab_6mm.descr" , 'caltab_800mm.descr' "caltab_800mm.descr" "caltab_800mm.descr" "caltab_800mm.descr" "caltab_800mm.descr" , 'caltab_big.descr' "caltab_big.descr" "caltab_big.descr" "caltab_big.descr" "caltab_big.descr" , 'caltab_small.descr' "caltab_small.descr" "caltab_small.descr" "caltab_small.descr" "caltab_small.descr"
Dateiendung: .cpd
, .descr
CameraParam CameraParam CameraParam CameraParam cameraParam
(input_control) campar →
HCamPar , HTuple HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter.
CalPlatePose CalPlatePose CalPlatePose CalPlatePose calPlatePose
(input_control) pose →
HPose , HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
externe Kameraparameter (3D-Lage des Kalibrierkörpers in
Kamerakoordinaten).
Parameteranzahl: 7
GrayBackground GrayBackground GrayBackground GrayBackground grayBackground
(input_control) integer →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Hintergrundgrauwert des Bildes.
Defaultwert: 128
Wertevorschläge: 0, 32, 64, 96, 128, 160
Restriktion: 0 <= GrayBackground <= 255
GrayPlate GrayPlate GrayPlate GrayPlate grayPlate
(input_control) integer →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Grauwert der Kalibrierkörperplatte.
Defaultwert: 80
Wertevorschläge: 144, 160, 176, 192, 208, 224, 240
Restriktion: 0 <= GrayPlate <= 255
GrayMarks GrayMarks GrayMarks GrayMarks grayMarks
(input_control) integer →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Grauwert der Kalibrierkörpermarkierungen.
Defaultwert: 224
Wertevorschläge: 16, 32, 48, 64, 80, 96, 112
Restriktion: 0 <= GrayMarks <= 255
ScaleFac ScaleFac ScaleFac ScaleFac scaleFac
(input_control) real →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Skalierungsfaktor zum Herabsetzen der Überabtastung.
Defaultwert: 1.0
Wertevorschläge: 1.0, 0.5, 0.25, 0.125
Empfohlene Schrittweite: 0.05
Restriktion: 1.0 >= ScaleFac
Beispiel (HDevelop)
* Read calibration image.
read_image(Image1, 'calib-01')
* Find calibration pattern.
CameraType := 'area_scan_division'
StartCamPar := [CameraType, Focus, Kappa, Sx, Sy, Cx, Cy, \
ImageWidth, ImageHeight]
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)
set_calib_data_calib_object (CalibDataID, 0, 'calplate.cpd')
find_caltab(Image1, CalPlate1, 'caltab.descr', 3, 112, 5)
* Find calibration marks and initial pose.
find_calib_object (Image1, CalibDataID, 0, 0, 0, [], [])
* Camera calibration.
calibrate_cameras (CalibDataID, Error)
* Simulate calibration image.
get_calib_data (CalibDataID, 'calib_obj_pose', [0, 0], 'pose', FinalPose)
get_calib_data (CalibDataID, 'camera', 0, 'params', CameraParam)
sim_caltab(Image1Sim, 'calplate.cpd', CameraParam, FinalPose, 128, \
80, 224, 1)
Ergebnis
Sind die Parameterwerte korrekt, dann liefert sim_caltab sim_caltab SimCaltab SimCaltab SimCaltab
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
camera_calibration camera_calibration CameraCalibration CameraCalibration CameraCalibration
,
find_marks_and_pose find_marks_and_pose FindMarksAndPose FindMarksAndPose FindMarksAndPose
,
read_pose read_pose ReadPose ReadPose ReadPose
,
read_cam_par read_cam_par ReadCamPar ReadCamPar ReadCamPar
,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose HomMat3dToPose
Nachfolger
find_caltab find_caltab FindCaltab FindCaltab FindCaltab
Siehe auch
find_caltab find_caltab FindCaltab FindCaltab FindCaltab
,
find_marks_and_pose find_marks_and_pose FindMarksAndPose FindMarksAndPose FindMarksAndPose
,
camera_calibration camera_calibration CameraCalibration CameraCalibration CameraCalibration
,
disp_caltab disp_caltab DispCaltab DispCaltab DispCaltab
,
create_pose create_pose CreatePose CreatePose CreatePose
,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose HomMat3dToPose
,
project_3d_point project_3d_point Project3dPoint Project3dPoint Project3dPoint
,
gen_caltab gen_caltab GenCaltab GenCaltab GenCaltab
Modul
Calibration