reconstruct_surface_structured_lightT_reconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light (Operator)

Name

reconstruct_surface_structured_lightT_reconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light — Rekonstruktion einer Oberfläche aus einem dekodierten Modell für strukturiertes Licht.

Signatur

reconstruct_surface_structured_light( : : StructuredLightModel : ObjectModel3D)

Herror T_reconstruct_surface_structured_light(const Htuple StructuredLightModel, Htuple* ObjectModel3D)

void ReconstructSurfaceStructuredLight(const HTuple& StructuredLightModel, HTuple* ObjectModel3D)

void HObjectModel3D::ReconstructSurfaceStructuredLight(const HStructuredLightModel& StructuredLightModel)

HObjectModel3D HStructuredLightModel::ReconstructSurfaceStructuredLight() const

static void HOperatorSet.ReconstructSurfaceStructuredLight(HTuple structuredLightModel, out HTuple objectModel3D)

void HObjectModel3D.ReconstructSurfaceStructuredLight(HStructuredLightModel structuredLightModel)

HObjectModel3D HStructuredLightModel.ReconstructSurfaceStructuredLight()

def reconstruct_surface_structured_light(structured_light_model: HHandle) -> HHandle

Beschreibung

reconstruct_surface_structured_lightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light rekonstruiert eine Oberfläche mit einem Verfahren mit strukturiertem Licht. Vor der Rekonstruktion wird für jedes projizierte Muster-Bilder ein Kamerabild der Projektion auf die Oberfläche aufgenommen. Das Konzept des strukturierten Lichts sowie die unterstützten Anwendungsbereiche werden in der Einleitung des Kapitels Inspektion / Strukturiertes Licht beschrieben. Die rekonstruierte Oberfläche wird im HALCON-3D-Objektmodell ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d zurückgegeben.

Rekonstruiert werden können diffus reflektierende Oberflächen, unter Benutzung eines Projektors, der Licht wie eine 'inverse Kamera' projiziert. In create_structured_light_modelcreate_structured_light_modelCreateStructuredLightModelCreateStructuredLightModelcreate_structured_light_model muss der Typ des Modells auf '3d_reconstruction'"3d_reconstruction""3d_reconstruction""3d_reconstruction""3d_reconstruction" gesetzt sein.

Die Rekonstruktion verwendet die vertikalen dekodierten Korrespondenzen zwischen den beleuchtenden Projektorkoordinaten und den Kamerakoordinaten, sowie Kalibrierdaten:

decode_structured_light_patterndecode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatterndecode_structured_light_pattern muss vor reconstruct_surface_structured_lightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light aufgerufen werden, um die Korrespondenzbilder zwischen Projektor- und Kamerakoordinaten im Modell StructuredLightModelStructuredLightModelStructuredLightModelstructuredLightModelstructured_light_model zu speichern, d. h. für jedes Kamerapixel, von welchem Projektorpixel der beobachtete Oberflächenpunkt beleuchtet (kodiert) wird. reconstruct_surface_structured_lightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light benutzt die vertikalen Korrespondenzbilder, so dass der Parameter 'pattern_orientation'"pattern_orientation""pattern_orientation""pattern_orientation""pattern_orientation" von set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param auf 'vertical'"vertical""vertical""vertical""vertical" oder 'both'"both""both""both""both" gesetzt sein muss. In den meisten Fällen sollte für eine höhere Geschwindigkeit 'vertical'"vertical""vertical""vertical""vertical" gewählt werden, da weniger Bilder als für 'both'"both""both""both""both" benötigt werden.

Das Setzen der Kalibrierdaten wird in set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param für den Parameter 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model" beschrieben.

Die Rekonstruktion wird nur innerhalb der Domäne der Korrespondenzbilder durchgeführt. Eine Verkleinerung der Domäne der Eingabebilder von decode_structured_light_patterndecode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatterndecode_structured_light_pattern (z. B. mit reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain) kann genutzt werden, um die rekonstruierte Oberfläche zu verkleinern, z. B. für schnellere Laufzeit oder zur Unterdrückung von Rauschen. Das Ergebnis ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d enthält ein 2D-Mapping, so dass aus object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz mit 'from_xyz_map'"from_xyz_map""from_xyz_map""from_xyz_map""from_xyz_map" auch entsprechende Koordinatenbilder erzeugt werden können. Pixel, für die keine Rekonstruktion möglich war, sind nicht in ihrer Domäne enthalten.

Ausführungsinformationen

Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.

Parameter

StructuredLightModelStructuredLightModelStructuredLightModelstructuredLightModelstructured_light_model (input_control)  structured_light_model HStructuredLightModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Modells für strukturiertes Licht.

ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (output_control)  object_model_3d HObjectModel3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des 3D-Objektmodells.

Beispiel (HDevelop)

* Set the calibration information
set_structured_light_model_param (StructuredLightModel, \
                                  'camera_setup_model', CameraSetupModelID)
* Decode the camera images
decode_structured_light_pattern (CameraImages, StructuredLightModel)
* Reconstruct the surface
reconstruct_surface_structured_light (StructuredLightModel, ObjectModel3D)

Ergebnis

Der Operator reconstruct_surface_structured_lightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light gibt 2 ( H_MSG_TRUE) zurück, sofern alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung ausgelöst.

Vorgänger

decode_structured_light_patterndecode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatterndecode_structured_light_pattern

Nachfolger

object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz

Siehe auch

create_structured_light_modelcreate_structured_light_modelCreateStructuredLightModelCreateStructuredLightModelcreate_structured_light_model, set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param

Modul

3D Metrology