Dieses Kapitel beinhaltet Operatoren für die Verwendung 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 . Der
Modelltyp wird mit create_structured_light_model spezifiziert. Zurzeit werden die Typen
ModelType'deflectometry' und '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.
Im ersten Schritt wird das Modell für strukturiertes Licht mit
erzeugt oder mit
eingelesen.
Die unterschiedlichen Modellparameter können mit
gesetzt oder mit
set_structured_light_model_param abgefragt werden. Die Parameter
get_structured_light_model_param'pattern_width', 'pattern_height',
'pattern_orientation' und 'pattern_type' spezifizieren,
mitsamt den Parametern 'min_stripe_width' und
'single_stripe_width' die Vorgaben der zu erzeugenden Muster-Bilder,
welche zur Beleuchtung der Oberfläche benutzt werden. Schließlich kann der
Parameter 'persistence' gesetzt werden, um die Zwischenergebnisse zu
debuggen.
Die Muster-Bilder werden mit erzeugt,
nachdem alle relevanten Parameter gesetzt wurden. Es ist sicherzustellen,
dass die erzeugten Muster-Bilder an den Bedarf des jeweiligen Setups
angepasst sind.
gen_structured_light_pattern
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.
Die erzeugten Kamerabilder können mit
CameraImages dekodiert werden. Nach Aufruf dieses
Operators werden die Korrespondenzbilder erzeugt und in dem Modell
decode_structured_light_pattern gespeichert.
StructuredLightModel
Die dekodierten Korrespondenzbilder 'correspondence_image'
sowie die anderen Ergebnisse können mit
abgefragt werden. Weitere Details über
die verschiedenen Objekte, die abgefragt werden können, finden sich in der
Referenzdokumentation des Operators.
get_structured_light_object
Das Defektbild 'defect_image' kann mit
erzeugt und abgerufen werden.
get_structured_light_object
Die Kalibrierdaten können mit dem Parameter 'camera_setup_model'
von gesetzt werden.
set_structured_light_model_param liefert dann die rekonstruierte
3D Oberfläche.
reconstruct_surface_structured_light
Das Modell für strukturiertes Licht bietet diverse Operatoren, die dabei helfen, auf Modellparameter zuzugreifen und diese zu aktualisieren.
Mit 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
write_structured_light_model kann die Modell-Datei gelesen
werden.
read_structured_light_model
Des Weiteren ist es möglich, das Modell mit den Operatoren
und
serialize_structured_light_model zu serialisieren und zu
deserialisieren.
deserialize_structured_light_model
Weitere Details zu strukturiertem Licht finden sich im „Solution
Guide Basics“. Eine Liste der Operatoren findet sich in
Inspektion / Strukturiertes Licht.