Strukturiertes Licht
Liste der Operatoren ↓
Dieses Kapitel beinhaltet Operatoren für die Verwendung von strukturiertem
Licht.
Konzept von strukturiertem Licht
Das grundlegende Konzept von strukturiertem Licht beruht auf strukturierter
Beleuchtung, einer Beleuchtung mit bekannten Mustern. Die Art und Weise, wie
diese Muster nach dem Auftreffen auf eine Oberfläche in der Szene erscheinen,
lässt eine weitere Analyse oder Rekonstruktion der Oberfläche zu.
Eine Voraussetzung für die Anwendung von strukturiertem Licht ist das
Erzeugen eines Modells mittels create_structured_light_modelcreate_structured_light_modelCreateStructuredLightModelCreateStructuredLightModelcreate_structured_light_model. Der
Modelltyp wird mit ModelTypeModelTypeModelTypemodelTypemodel_type spezifiziert. Zurzeit werden die Typen
'deflectometry'"deflectometry""deflectometry""deflectometry""deflectometry" und '3d_reconstruction'"3d_reconstruction""3d_reconstruction""3d_reconstruction""3d_reconstruction" unterstützt.
Abhängig von der gewählten Aufgabe sollten verschiedene Beleuchtungen benutzt
werden:
-
Für Deflektometrie, zur Detektion von Defekten auf spiegelnden oder
halbmatten Oberflächen, sollte ein Display oder Monitor verwendet
werden.
-
Für 3D-Rekonstruktion von lambertschen oder diffus streuenden
Oberflächen sollte ein Projektor verwendet werden.
Unter Deflektometrie versteht man die
Analyse der Reflexionen bekannter Muster von spiegelnden oder halbmatten
Oberflächen. Jedes Muster-Bild muss auf einem Display oder Monitor angezeigt
werden. Es wird von der zu untersuchenden Oberfläche reflektiert, und ein
entsprechendes Kamerabild der Reflexion wird aufgenommen. Verformungen der
Muster im Kamerabild werden von der spiegelnden Oberfläche verursacht, so dass
Oberflächendefekte detektiert werden können.
Für nicht-spiegelnde Oberflächen kann bei Verwendung eines Projektors, der Licht
gerichtet wie eine 'inverse Kamera' projiziert, eine 3D Oberfläche rekonstruiert
werden. Für jedes projizierte Muster-Bild wird ein Kamerabild der Projektion
auf die Oberfläche aufgenommen. Mithilfe der dekodierten Korrespondenzen
zwischen den beleuchtenden Projektorkoordinaten und den Kamerakoordinaten,
sowie Kalibrierdaten, wird die 3D Oberfläche rekonstruiert.
Die zur Verwendung von strukturiertem Licht notwendigen Schritte werden im
folgendenen kurz erläutert.
- Erzeugen eines Modells für strukturiertes Licht:
-
Im ersten Schritt wird das Modell für strukturiertes Licht mit
erzeugt oder mit
eingelesen.
- Setzen der Modellparameter:
-
Die unterschiedlichen Modellparameter können mit
set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param gesetzt oder mit
get_structured_light_model_paramget_structured_light_model_paramGetStructuredLightModelParamGetStructuredLightModelParamget_structured_light_model_param abgefragt werden. Die Parameter
'pattern_width'"pattern_width""pattern_width""pattern_width""pattern_width", 'pattern_height'"pattern_height""pattern_height""pattern_height""pattern_height",
'pattern_orientation'"pattern_orientation""pattern_orientation""pattern_orientation""pattern_orientation" und 'pattern_type'"pattern_type""pattern_type""pattern_type""pattern_type" spezifizieren,
mitsamt den Parametern 'min_stripe_width'"min_stripe_width""min_stripe_width""min_stripe_width""min_stripe_width" und
'single_stripe_width'"single_stripe_width""single_stripe_width""single_stripe_width""single_stripe_width" die Vorgaben der zu erzeugenden Muster-Bilder,
welche zur Beleuchtung der Oberfläche benutzt werden. Schließlich kann der
Parameter 'persistence'"persistence""persistence""persistence""persistence" gesetzt werden, um die Zwischenergebnisse zu
debuggen.
- Erzeugen der Muster-Bilder:
-
Die Muster-Bilder werden mit gen_structured_light_patterngen_structured_light_patternGenStructuredLightPatternGenStructuredLightPatterngen_structured_light_pattern erzeugt,
nachdem alle relevanten Parameter gesetzt wurden. Es ist sicherzustellen,
dass die erzeugten Muster-Bilder an den Bedarf des jeweiligen Setups
angepasst sind.
- Beleuchtung der Oberfläche mit Mustern und Aufnahme der Kamerabilder:
-
In dieser Phase werden die Muster-Bilder auf dem Monitor angezeigt oder
projiziert. Für jedes Muster-Bild wird ein Kamerabild der beleuchteten
Oberfläche aufgenommen.
- Dekodieren der aufgenommenen Bilder:
-
Die erzeugten Kamerabilder CameraImagesCameraImagesCameraImagescameraImagescamera_images können mit
decode_structured_light_patterndecode_structured_light_patternDecodeStructuredLightPatternDecodeStructuredLightPatterndecode_structured_light_pattern dekodiert werden. Nach Aufruf dieses
Operators werden die Korrespondenzbilder erzeugt und in dem Modell
StructuredLightModelStructuredLightModelStructuredLightModelstructuredLightModelstructured_light_model gespeichert.
Die dekodierten Korrespondenzbilder 'correspondence_image'"correspondence_image""correspondence_image""correspondence_image""correspondence_image"
sowie die anderen Ergebnisse können mit
get_structured_light_objectget_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectget_structured_light_object abgefragt werden. Weitere Details über
die verschiedenen Objekte, die abgefragt werden können, finden sich in der
Referenzdokumentation des Operators.
- Abrufen der Ergebnisse für Modelle für strukturiertes Licht vom Typ
'deflectometry':
-
Das Defektbild 'defect_image'"defect_image""defect_image""defect_image""defect_image" kann mit
get_structured_light_objectget_structured_light_objectGetStructuredLightObjectGetStructuredLightObjectget_structured_light_object erzeugt und abgerufen werden.
- Abrufen der Ergebnisse für Modelle für strukturiertes Licht vom Typ
'3d_reconstruction':
-
Die Kalibrierdaten können mit dem Parameter 'camera_setup_model'"camera_setup_model""camera_setup_model""camera_setup_model""camera_setup_model"
von set_structured_light_model_paramset_structured_light_model_paramSetStructuredLightModelParamSetStructuredLightModelParamset_structured_light_model_param gesetzt werden.
reconstruct_surface_structured_lightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightReconstructSurfaceStructuredLightreconstruct_surface_structured_light liefert dann die rekonstruierte
3D Oberfläche.
Weitere Operatoren
Das Modell für strukturiertes Licht bietet diverse Operatoren, die
dabei helfen, auf Modellparameter zuzugreifen und diese zu aktualisieren.
Mit write_structured_light_modelwrite_structured_light_modelWriteStructuredLightModelWriteStructuredLightModelwrite_structured_light_model kann das Modell für strukturiertes
Licht in einer Datei gespeichert werden. Es ist sicherzustellen, dass zuvor
generierte Muster-Bilder nicht in dieser Datei gespeichert werden. Mit
read_structured_light_modelread_structured_light_modelReadStructuredLightModelReadStructuredLightModelread_structured_light_model kann die Modell-Datei gelesen
werden.
Des Weiteren ist es möglich, das Modell mit den Operatoren
serialize_structured_light_modelserialize_structured_light_modelSerializeStructuredLightModelSerializeStructuredLightModelserialize_structured_light_model und
deserialize_structured_light_modeldeserialize_structured_light_modelDeserializeStructuredLightModelDeserializeStructuredLightModeldeserialize_structured_light_model zu serialisieren und zu
deserialisieren.
Weiterführende Informationen
Weitere Details zu strukturiertem Licht finden sich im „Solution
Guide Basics“.
Liste der Operatoren
clear_structured_light_modelClearStructuredLightModelclear_structured_light_modelClearStructuredLightModelclear_structured_light_model
- Löschen eines Modells für strukturiertes Licht und Freigabe des verwendeten
Speichers.
create_structured_light_modelCreateStructuredLightModelcreate_structured_light_modelCreateStructuredLightModelcreate_structured_light_model
- Erzeugen eines Modells für strukturiertes Licht.
decode_structured_light_patternDecodeStructuredLightPatterndecode_structured_light_patternDecodeStructuredLightPatterndecode_structured_light_pattern
- Dekodieren der aufgenommenen Kamerabilder bei einem Verfahren mit
strukturiertem Licht.
deserialize_structured_light_modelDeserializeStructuredLightModeldeserialize_structured_light_modelDeserializeStructuredLightModeldeserialize_structured_light_model
- Deserialisieren eines Modells für strukturiertes Licht.
gen_structured_light_patternGenStructuredLightPatterngen_structured_light_patternGenStructuredLightPatterngen_structured_light_pattern
- Erstellen der Muster-Bilder zur Anzeige bei einem Verfahren mit
strukturiertem Licht.
get_structured_light_model_paramGetStructuredLightModelParamget_structured_light_model_paramGetStructuredLightModelParamget_structured_light_model_param
- Abfragen von Parametern eines Modells für strukturiertes Licht.
get_structured_light_objectGetStructuredLightObjectget_structured_light_objectGetStructuredLightObjectget_structured_light_object
- Ikonische (Zwischen-)Ergebnisse vom Modell für strukturiertes Licht
abfragen.
read_structured_light_modelReadStructuredLightModelread_structured_light_modelReadStructuredLightModelread_structured_light_model
- Lesen eines Modells für strukturiertes Licht aus einer Datei.
reconstruct_surface_structured_lightReconstructSurfaceStructuredLightreconstruct_surface_structured_lightReconstructSurfaceStructuredLightreconstruct_surface_structured_light
- Rekonstruktion einer Oberfläche aus einem dekodierten Modell für
strukturiertes Licht.
serialize_structured_light_modelSerializeStructuredLightModelserialize_structured_light_modelSerializeStructuredLightModelserialize_structured_light_model
- Serialisieren eines Modells für strukturiertes Licht.
set_structured_light_model_paramSetStructuredLightModelParamset_structured_light_model_paramSetStructuredLightModelParamset_structured_light_model_param
- Setzen von Parametern eines Modells für strukturiertes Licht.
write_structured_light_modelWriteStructuredLightModelwrite_structured_light_modelWriteStructuredLightModelwrite_structured_light_model
- Abspeichern eines Modells für strukturiertes Licht in einer Datei.