sim_caltab T_sim_caltab SimCaltab SimCaltab sim_caltab (Operator)
Name
sim_caltab T_sim_caltab SimCaltab SimCaltab sim_caltab — 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 sim_caltab dient der Simulation eines Kalibrierbildes.
Dazu wird die Kalibrierkörperbeschreibung aus der Datei
CalPlateDescr CalPlateDescr CalPlateDescr CalPlateDescr calPlateDescr cal_plate_descr eingelesen und die darin enthaltende
3D-Beschreibung mit Hilfe der angegebenen Kameraparameter, d.h., den
internen Kameraparametern CameraParam CameraParam CameraParam CameraParam cameraParam camera_param und externen Kameraparametern
CalPlatePose CalPlatePose CalPlatePose CalPlatePose calPlatePose cal_plate_pose , auf die Bildebene projiziert (vgl.
project_3d_point project_3d_point Project3dPoint Project3dPoint Project3dPoint project_3d_point ).
Die 3D-Lage CalPlatePose CalPlatePose CalPlatePose CalPlatePose calPlatePose cal_plate_pose 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 gray_background , der
Hintergrund des Kalibrierkörpers mit GrayPlate GrayPlate GrayPlate GrayPlate grayPlate gray_plate und die
Kalibrierkörpermarken werden mit GrayMarks GrayMarks GrayMarks GrayMarks grayMarks gray_marks belegt. Der
Parameter ScaleFac ScaleFac ScaleFac ScaleFac scaleFac scale_fac 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 disp_caltab ). 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 gray_marks und GrayPlate GrayPlate GrayPlate GrayPlate grayPlate gray_plate anhand des Verhältnisses
Innerhalb/Außerhalb gesetzt.
Mit dem Operator sim_caltab sim_caltab SimCaltab SimCaltab SimCaltab sim_caltab 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 sim_image (output_object) image → object HImage HObject HImage Hobject * (byte)
Simuliertes Kalibrierbild.
CalPlateDescr CalPlateDescr CalPlateDescr CalPlateDescr calPlateDescr cal_plate_descr (input_control) filename.read → HTuple str 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"
"calplate_320mm.cpd"
Werteliste: 'calplate_10mm.cpd' "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_1200mm.cpd" , 'calplate_160mm.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.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_20mm_dark_on_light.cpd" , 'calplate_320mm.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.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_40mm_dark_on_light.cpd" , 'calplate_5mm.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_640mm.cpd" , 'calplate_80mm.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" "calplate_80mm_dark_on_light.cpd" , '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_2500um.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_30mm.descr" , 'caltab_650um.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_6mm.descr" , 'caltab_800mm.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_big.descr" , 'caltab_small.descr' "caltab_small.descr" "caltab_small.descr" "caltab_small.descr" "caltab_small.descr" "caltab_small.descr"
Dateiendung: .cpd, .descr
CameraParam CameraParam CameraParam CameraParam cameraParam camera_param (input_control) campar → HCamPar , HTuple Sequence[Union[int, float, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter.
CalPlatePose CalPlatePose CalPlatePose CalPlatePose calPlatePose cal_plate_pose (input_control) pose → HPose , HTuple Sequence[Union[int, float]] 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 gray_background (input_control) integer → HTuple int 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 gray_plate (input_control) integer → HTuple int 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 gray_marks (input_control) integer → HTuple int 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 scale_fac (input_control) real → HTuple float 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 sim_caltab
den Wert 2 (H_MSG_TRUE ). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
camera_calibration camera_calibration CameraCalibration CameraCalibration CameraCalibration camera_calibration ,
find_marks_and_pose find_marks_and_pose FindMarksAndPose FindMarksAndPose FindMarksAndPose find_marks_and_pose ,
read_pose read_pose ReadPose ReadPose ReadPose read_pose ,
read_cam_par read_cam_par ReadCamPar ReadCamPar ReadCamPar read_cam_par ,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose HomMat3dToPose hom_mat3d_to_pose
Nachfolger
find_caltab find_caltab FindCaltab FindCaltab FindCaltab find_caltab
Siehe auch
find_caltab find_caltab FindCaltab FindCaltab FindCaltab find_caltab ,
find_marks_and_pose find_marks_and_pose FindMarksAndPose FindMarksAndPose FindMarksAndPose find_marks_and_pose ,
camera_calibration camera_calibration CameraCalibration CameraCalibration CameraCalibration camera_calibration ,
disp_caltab disp_caltab DispCaltab DispCaltab DispCaltab disp_caltab ,
create_pose create_pose CreatePose CreatePose CreatePose create_pose ,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose HomMat3dToPose hom_mat3d_to_pose ,
project_3d_point project_3d_point Project3dPoint Project3dPoint Project3dPoint project_3d_point ,
gen_caltab gen_caltab GenCaltab GenCaltab GenCaltab gen_caltab
Modul
Calibration