reconstruct_surface_structured_light — Rekonstruktion einer Oberfläche aus einem dekodierten Modell für
strukturiertes Licht.
reconstruct_surface_structured_light( : : StructuredLightModel : ObjectModel3D)
reconstruct_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 ObjectModel3D
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_model muss der Typ des Modells auf
'3d_reconstruction' gesetzt sein.
Die Rekonstruktion verwendet die vertikalen dekodierten Korrespondenzen zwischen den beleuchtenden Projektorkoordinaten und den Kamerakoordinaten, sowie Kalibrierdaten:
decode_structured_light_pattern muss vor
reconstruct_surface_structured_light aufgerufen werden, um die
Korrespondenzbilder zwischen Projektor- und Kamerakoordinaten im Modell
StructuredLightModel zu speichern, d. h. für jedes Kamerapixel,
von welchem Projektorpixel der beobachtete Oberflächenpunkt beleuchtet
(kodiert) wird. reconstruct_surface_structured_light benutzt
die vertikalen Korrespondenzbilder, so dass der Parameter
'pattern_orientation' von set_structured_light_model_param
auf 'vertical' oder 'both' gesetzt sein muss.
In den meisten Fällen sollte für eine höhere Geschwindigkeit
'vertical' gewählt werden, da weniger Bilder als für
'both' benötigt werden.
Das Setzen der Kalibrierdaten wird in set_structured_light_model_param
für den Parameter '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_pattern (z. B. mit reduce_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 ObjectModel3D enthält ein 2D-Mapping, so dass aus
object_model_3d_to_xyz mit '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.
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.
StructuredLightModel (input_control) structured_light_model → (handle)
Handle des Modells für strukturiertes Licht.
ObjectModel3D (output_control) object_model_3d → (handle)
Handle des 3D-Objektmodells.
* 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)
Der Operator reconstruct_surface_structured_light gibt 2 (
H_MSG_TRUE)
zurück,
sofern alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung
ausgelöst.
decode_structured_light_pattern
create_structured_light_model,
set_structured_light_model_param
3D Metrology