apply_sheet_of_light_calibrationT_apply_sheet_of_light_calibrationApplySheetOfLightCalibrationApplySheetOfLightCalibration (Operator)

Name

apply_sheet_of_light_calibrationT_apply_sheet_of_light_calibrationApplySheetOfLightCalibrationApplySheetOfLightCalibration — Wendet die Kalibriertransformationen auf das Eingabe-Disparitätsbild an.

Signatur

apply_sheet_of_light_calibration(Disparity : : SheetOfLightModelID : )

Herror T_apply_sheet_of_light_calibration(const Hobject Disparity, const Htuple SheetOfLightModelID)

void ApplySheetOfLightCalibration(const HObject& Disparity, const HTuple& SheetOfLightModelID)

void HImage::ApplySheetOfLightCalibration(const HSheetOfLightModel& SheetOfLightModelID) const

void HSheetOfLightModel::ApplySheetOfLightCalibration(const HImage& Disparity) const

static void HOperatorSet.ApplySheetOfLightCalibration(HObject disparity, HTuple sheetOfLightModelID)

void HImage.ApplySheetOfLightCalibration(HSheetOfLightModel sheetOfLightModelID)

void HSheetOfLightModel.ApplySheetOfLightCalibration(HImage disparity)

Beschreibung

Der Operator apply_sheet_of_light_calibrationapply_sheet_of_light_calibrationApplySheetOfLightCalibrationApplySheetOfLightCalibrationApplySheetOfLightCalibration liest das Disparitätsbild DisparityDisparityDisparityDisparitydisparity und speichert es in das von SheetOfLightModelIDSheetOfLightModelIDSheetOfLightModelIDSheetOfLightModelIDsheetOfLightModelID referenzierte Lichtschnitt-Modell. Anschließend werden die Kalibriertransformationen auf dieses Disparitätsbild angewendet und somit die kalibrierten 3D-Punktkoordinaten der rekonstruierten Oberfläche berechnet. Diese 3D-Koordinaten können mit dem Operator get_sheet_of_light_resultget_sheet_of_light_resultGetSheetOfLightResultGetSheetOfLightResultGetSheetOfLightResult abgerufen werden. Das entsprechende 3D-Objektmodell kann mit dem Operator get_sheet_of_light_result_object_model_3dget_sheet_of_light_result_object_model_3dGetSheetOfLightResultObjectModel3dGetSheetOfLightResultObjectModel3dGetSheetOfLightResultObjectModel3d abgerufen werden. Vor dem nächsten Aufruf von apply_sheet_of_light_calibrationapply_sheet_of_light_calibrationApplySheetOfLightCalibrationApplySheetOfLightCalibrationApplySheetOfLightCalibration für ein Disparitätsbild kleinerer Höhe sollte reset_sheet_of_light_modelreset_sheet_of_light_modelResetSheetOfLightModelResetSheetOfLightModelResetSheetOfLightModel aufgerufen werden.

Das Disparitätsbild DisparityDisparityDisparityDisparitydisparity kann mit dem Operator measure_profile_sheet_of_lightmeasure_profile_sheet_of_lightMeasureProfileSheetOfLightMeasureProfileSheetOfLightMeasureProfileSheetOfLight gemessen werden oder auch mit Hilfe einer speziellen Kamera akquiriert werden, welche Disparitätsbilder direkt nach dem Lichtschnittverfahren liefert.

Um die kalibrierten 3D-Koordinaten mit apply_sheet_of_light_calibrationapply_sheet_of_light_calibrationApplySheetOfLightCalibrationApplySheetOfLightCalibrationApplySheetOfLightCalibration berechnen zu können, müssen vorher die folgenden Parameter in das Lichtschnitt-Modell gesetzt worden sein. Dies kann mit dem Operator set_sheet_of_light_paramset_sheet_of_light_paramSetSheetOfLightParamSetSheetOfLightParamSetSheetOfLightParam erfolgen.

'calibration'"calibration""calibration""calibration""calibration":

gibt an, welche Kalibriertransformationen auf das Disparitätsbild angewendet werden sollen und muss auf 'xz'"xz""xz""xz""xz", 'xyz'"xyz""xyz""xyz""xyz" oder 'offset_scale'"offset_scale""offset_scale""offset_scale""offset_scale" gesetzt worden sein.

'camera_parameter'"camera_parameter""camera_parameter""camera_parameter""camera_parameter":

die internen Parameter der Kamera des Messsystems.

'camera_pose'"camera_pose""camera_pose""camera_pose""camera_pose":

die Pose des Weltkoordinatensystems relativ zum Kamerakoordinatesystem.

'lightplane_pose'"lightplane_pose""lightplane_pose""lightplane_pose""lightplane_pose":

die Pose des Koordinatensystems der Lichtebene relativ zum Weltkoordinatensystem. Mit dem Koordinatensystem der Lichtebene ist ein Koordinatensystem gemeint, dessen Ebene definiert durch z=0 mit der Lichtebene übereinstimmt, die der Lichtlinienprojektor im Raum erzeugt.

'movement_pose'"movement_pose""movement_pose""movement_pose""movement_pose":

die Pose, die die Bewegung des Objekts relativ zum Messsystem während der Messung beschreibt. Diese Pose soll im Weltkoordinatensystem formuliert sein.

'scale'"scale""scale""scale""scale":

dieser Parameter legt fest mit welchem Faktor die kalibrierten 3D-Koordinaten X, Y und Z skaliert werden. 'scale'"scale""scale""scale""scale" muss als der Quotient Zieleinheit/Originaleinheit eingegeben werden. Die Originaleinheit wird durch das Kalibrierobjekt bestimmt, sie ist Meter wenn Sie eine Standardkalibrierplatte benutzen.

Die Referenzdokumentation des Operators set_sheet_of_light_paramset_sheet_of_light_paramSetSheetOfLightParamSetSheetOfLightParamSetSheetOfLightParam liefert weitere Details über die Bedeutung aller Modell-Parameter.

Ausführungsinformationen

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.

Parameter

DisparityDisparityDisparityDisparitydisparity (input_object)  singlechannelimage objectHImageHImageHobject (real)

Zu kalibrierende Entfernungs- oder Höhenmessung.

SheetOfLightModelIDSheetOfLightModelIDSheetOfLightModelIDSheetOfLightModelIDsheetOfLightModelID (input_control, Zustand wird modifiziert)  sheet_of_light_model HSheetOfLightModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Lichtschnitt-Modells.

Beispiel (HDevelop)

* ...
* Read an already acquired disparity map from file
read_image (Disparity, 'sheet_of_light/connection_rod_disparity.tif')
*
* Create a model and set the required parameters
gen_rectangle1 (ProfileRegion, 120, 75, 195, 710)
create_sheet_of_light_model (ProfileRegion, ['min_gray','num_profiles', \
                             'ambiguity_solving'], [70,290,'first'], \
                              SheetOfLightModelID)
set_sheet_of_light_param (SheetOfLightModelID, 'calibration', 'xyz')
set_sheet_of_light_param (SheetOfLightModelID, 'scale', 'mm')
set_sheet_of_light_param (SheetOfLightModelID, 'camera_parameter', \
                          CameraParameter)
set_sheet_of_light_param (SheetOfLightModelID, 'camera_pose', CameraPose)
set_sheet_of_light_param (SheetOfLightModelID, 'lightplane_pose', \
                          LightPlanePose)
set_sheet_of_light_param (SheetOfLightModelID, 'movement_pose', \
                          MovementPose)
*
* Apply the calibration transforms and
* get the resulting calibrated coordinates
apply_sheet_of_light_calibration (Disparity, SheetOfLightModelID)
get_sheet_of_light_result (X, SheetOfLightModelID, 'x')
get_sheet_of_light_result (Y, SheetOfLightModelID, 'y')
get_sheet_of_light_result (Z, SheetOfLightModelID, 'z')
*

Ergebnis

apply_sheet_of_light_calibrationapply_sheet_of_light_calibrationApplySheetOfLightCalibrationApplySheetOfLightCalibrationApplySheetOfLightCalibration liefert den Wert 2 (H_MSG_TRUE), falls die übergebenen Parameter korrekt sind. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Nachfolger

get_sheet_of_light_resultget_sheet_of_light_resultGetSheetOfLightResultGetSheetOfLightResultGetSheetOfLightResult, get_sheet_of_light_result_object_model_3dget_sheet_of_light_result_object_model_3dGetSheetOfLightResultObjectModel3dGetSheetOfLightResultObjectModel3dGetSheetOfLightResultObjectModel3d

Modul

3D Metrology