set_structured_light_model_param — Setzen von Parametern eines Modells für strukturiertes Licht.
set_structured_light_model_param( : : StructuredLightModel, GenParamName, GenParamValue : )
Der Operator set_structured_light_model_param wird verwendet, um die
Parameter eines Modells für strukturiertes Licht StructuredLightModel
zu manipulieren. Die aktuellen Parametereinstellungen können mit dem Operator
get_structured_light_model_param abgefragt werden.
Das Konzept des strukturierten Lichts sowie die unterstützen Anwendungsbereiche werden in der Einleitung des Kapitels Inspektion / Strukturiertes Licht beschrieben.
Allgemeine Parameter:
Aktiviert (GenParamValue='true') oder deaktiviert
(GenParamValue='false') den Modus 'persistence' des
Modells für strukturiertes Licht. Im Persistenz-Modus speichert das Modell
Zwischenergebnisse der Dekodierung, welche später mit
get_structured_light_object inspiziert werden können.
Es ist zu beachten, dass das Modell in diesem Modus signifikanten Speicherplatz benötigen könnte. Deswegen empfehlen wir, den Persistenz-Modus nur während der Einrichtung oder zur Fehlerbehebung zu aktivieren.
Wird der Wert von 'persistence' verändert, werden alle Ergebnisse des Modells gelöscht.
Werte: 'true', 'false', 1, 0
Defaultwert: 'false'
Parameter, die das Erscheinungsbild der Muster-Bilder beeinflussen:
Setzt die Breite der Muster-Bilder, welche durch den Aufruf von
gen_structured_light_pattern erzeugt werden. Normalerweise sollte
'pattern_width' der Breite des Monitors oder Projektors entsprechen,
der zur Anzeige der Muster-Bilder verwendet wird.
Der Wert von 'pattern_width' muss größer als 'min_stripe_width'/2 sein. Für den Fall, dass 'pattern_type' auf 'single_stripe' gesetzt ist, muss 'pattern_width' zusätzlich größer als 'single_stripe_width'/2 sein. Für den Fall, dass ein 'camera_setup_model' im Modell gesetzt ist, muss 'pattern_width' zur Breite der Projektorparameter passen, die im Kameraaufbaumodell (an Index 1) gesetzt sind.
Wird der Wert von 'pattern_width' verändert, ist das Modell
nicht mehr dekodierbar und alle möglicherweise verfügbaren Ergebnisse
werden gelöscht. Deshalb muss gen_structured_light_pattern aufgerufen
werden, bevor das Modell mit decode_structured_light_pattern dekodiert
wird.
Werte: Ganze Zahlen größer oder gleich 1
Defaultwert: 1024
Setzt die Höhe der Muster-Bilder, welche durch den Aufruf von
gen_structured_light_pattern erzeugt werden. Normalerweise sollte
'pattern_height' der Höhe des Monitors oder Projektors entsprechen,
der zur Anzeige der Muster-Bilder verwendet wird.
Der Wert von 'pattern_height' muss größer als 'min_stripe_width'/2 sein. Für den Fall, dass 'pattern_type' auf 'single_stripe' gesetzt ist, muss 'pattern_height' zusätzlich größer als 'single_stripe_width'/2 sein. Für den Fall, dass ein 'camera_setup_model' im Modell gesetzt ist, muss 'pattern_height' zur Höhe der Projektorparameter passen, die im Kameraaufbaumodell (an Index 1) gesetzt sind.
Wird der Wert von 'pattern_height' verändert, ist das Modell
nicht mehr dekodierbar und alle möglicherweise verfügbaren Ergebnisse
werden gelöscht. Deshalb muss gen_structured_light_pattern aufgerufen
werden, bevor das Modell mit decode_structured_light_pattern dekodiert
wird.
Werte: Ganze Zahlen größer oder gleich 1
Defaultwert: 1024
Setzt die Breite (in Pixeln) des schmalsten Streifens der Muster-Bilder,
welche durch den Aufruf von gen_structured_light_pattern erzeugt
werden.
Der Wert von 'min_stripe_width' muss eine Zweierpotenz sein. Außerdem muss 'min_stripe_width' kleiner oder gleich dem Minimum der Parameter 'pattern_width' und 'pattern_height' sein, nachdem beide bis zur nächsten Zweierpotenz aufgerundet wurden. Für den Fall, dass 'pattern_type' auf 'single_stripe' gesetzt ist, muss 'min_stripe_width' zusätzlich kleiner oder gleich 'single_stripe_width' sein.
Wird der Wert von 'min_stripe_width' verändert, ist das Modell
nicht mehr dekodierbar und alle möglicherweise verfügbaren Ergebnisse
werden gelöscht. Deshalb muss gen_structured_light_pattern aufgerufen
werden, bevor das Modell mit decode_structured_light_pattern dekodiert
wird.
Werte: Ganzzahlige Zweierpotenzen größer oder gleich 4
Defaultwert: 32
Setzt den Modus der Normalisierung des Modells für strukturiertes
Licht. Wenn der Parameter 'normalisation' auf 'global'
gesetzt ist, generiert gen_structured_light_pattern zwei zusätzliche
Muster-Bilder bestehend aus einem weißen und einem schwarzen Bild. Diese Bilder
werden dann während der Dekodierung verwendet, um die eigentliche Muster Region
zu ermitteln. Wird stattdessen der Wert 'inverted_pattern' gewählt,
wird jedes Gray-Code-Bild zusätzlich invertiert und die Muster Region wird,
unter Verwendung der Gray-Code-Bilder und ihrer invertierten Version, iterativ
segmentiert.
Wird der Wert von 'normalization' verändert, ist das Modell
nicht mehr dekodierbar und alle möglicherweise verfügbaren Ergebnisse
werden gelöscht. Deshalb muss gen_structured_light_pattern aufgerufen
werden, bevor das Modell mit decode_structured_light_pattern dekodiert
wird.
Werte: 'global', 'inverted_pattern'
Defaultwert: 'global'
Setzt die Orientierung der Muster-Bilder, welche durch den Aufruf von
gen_structured_light_pattern erzeugt werden. Wenn der Parameter
'pattern_orientation' auf 'both' gesetzt ist, werden Muster
-Bilder mit vertikalen Streifen sowie Muster-Bilder mit horizontalen Streifen
erzeugt. Bei 'vertical' bestehen die Muster-Bilder nur aus vertikalen
Streifen, wohingegen bei 'horizontal' nur horizontale Streifen
generiert werden.
Wird der Wert von 'pattern_orientation' verändert, ist das Modell
nicht mehr dekodierbar und alle möglicherweise verfügbaren Ergebnisse
werden gelöscht. Deshalb muss gen_structured_light_pattern aufgerufen
werden, bevor das Modell mit decode_structured_light_pattern dekodiert
wird.
Werte: 'both', 'vertical', 'horizontal'
Defaultwert: 'both'
Setzt den Typ der Muster-Bilder, welche durch den Aufruf von
gen_structured_light_pattern erzeugt werden.
| 'pattern_type' | Erzeugte Bilder |
| 'gray_code' | Gray-Code-Bilder |
| 'gray_code_and_phase_shift' | Gray-Code-Bilder und Phasenbilder |
| 'single_stripe' | Einzelstreifen-Bilder, Gray-Code-Bilder und Phasenbilder |
Normalerweise liefert der Typ 'gray_code_and_phase_shift' präzisere Ergebnisse, da die Kombination aus Gray-Code-Bildern und Phasenbildern sub-pixel genaue Koordinaten liefert. Der Typ 'single_stripe' erhöht die Robustheit im Fall von partiell spiegelnden Oberflächen.
Wird 'pattern_type' verändert, ist das Modell
nicht mehr dekodierbar und alle möglicherweise verfügbaren Ergebnisse
werden gelöscht. Deshalb muss gen_structured_light_pattern aufgerufen
werden, bevor das Modell mit decode_structured_light_pattern dekodiert
wird.
Werte: 'gray_code_and_phase_shift', 'gray_code', 'single_stripe'
Defaultwert: 'gray_code_and_phase_shift'
Legt die Breite (in Pixeln) des
Einzelstreifens fest, welcher durch den Aufruf von
gen_structured_light_pattern mit dem 'pattern_type'
'single_stripe' generiert wird.
Der Wert muss von 'single_stripe_width' muss eine Zweierpotenz sein und muss größer oder gleich 'min_stripe_width' sein. Außerdem muss 'single_stripe_width' kleiner oder gleich dem Minimum der Parameter 'pattern_width' und 'pattern_height' sein, nachdem beide bis zur nächsten Zweierpotenz aufgerundet wurden.
Beachten Sie, dass der Parameter 'single_stripe_width' nur gesetzt werden kann, wenn 'pattern_type' der Wert 'single_stripe' zugewiesen wurde. Wird 'pattern_type' in 'single_stripe' geändert, wird 'single_stripe_width' auf eine Zweierpotenz ungefähr in der Mitte zwischen 'min_stripe_width' und dem Minimum von 'pattern_width' und 'pattern_height' gesetzt.
Wird 'single_stripe_width' verändert, ist das Modell nicht mehr
dekodierbar und alle möglicherweise verfügbaren Ergebnisse werden gelöscht. Daher
muss gen_structured_light_pattern aufgerufen werden, bevor das Modell
mit decode_structured_light_pattern dekodiert wird.
Values: Ganzzahlige Zweierpotenzen größer oder gleich 4
Default: Zweierpotenz ungefähr in der Mitte zwischen dem aktuell gesetzten Wert 'min_stripe_width' und 'pattern_width', 'pattern_height'
Parameter, welche die Segmentierung der Muster Region beeinflussen:
Setzt die kleinste Grauwertdifferenz für die Gray-Code-Bilder. Dieser
Wert wird innerhalb des Operators decode_structured_light_pattern
verwendet, um binarisierte Bilder zu ermitteln. Dadurch wird für jeden Pixel
des Kamerabildes die Grauwertdifferenz zwischen belichtetem und unbelichtetem
Fall berechnet. Wenn die Grauwertdifferenz eines Pixels kleiner als
'min_gray_difference' ist, wird der Pixel von der Domäne der
binarisierten Bilder (siehe get_structured_light_object)
ausgeschlossen und somit auch von weiteren Berechnungen.
Wenn 'min_gray_difference' auf 0 gesetzt wird, ist die segmentierte Region identisch zur Eingaberegion der Kamerabilder, mit dem einzigen Unterschied, dass Pixel mit einem Dekodierergebnis außerhalb der Muster-Bilder ausgeschlossen werden.
Werte: Ganze Zahlen großer oder gleich 0
Defaultwert: 30
Parameter für Modelle für strukturiertes Licht vom Typ 'deflectometry':
Setzt das Sigma der Gaußfunktion (d.h. das Ausmaß der Glättung) zur Faltung der Korrespondenzbilder, um das Defektbild zu berechnen.
Werte: Gleitkommazahlen oder ganze Zahlen größer oder gleich 0.01
Defaultwert: 2
Parameter für Modelle für strukturiertes Licht vom Typ '3d_reconstruction':
Setzt eine Kopie des
Kameraaufbaumodells, das die Kalibrierdaten des Sensors für strukturiertes
Licht enthält, wie etwa kalibrierte Kamera- und Projektorparameter und -posen.
Der Projektor des Sensors wird hier als 'inverse Kamera' modelliert.
reconstruct_surface_structured_light benutzt die Kalibrierdaten,
um die Oberfläche in Weltkoordinaten zu rekonstruieren. Weitere Informationen
zum Kalibriervorgang sind im Beispielprogramm zur Kalibrierung eines Sensors für
strukturiertes Licht zu finden (detaillierte Informationen zum Kalibriervorgang im
Mehrbild-Kameraaufbau finden sich in Kalibrierung / Mehrbild).
Die Kamera des Sensors muss in Index 0 im Kameraaufbaumodell gesetzt sein,
der Projektor des Sensors in Index 1. Um ein Kameraaufbaumodell aus dem
StructuredLightModel zu löschen, muss HNULL übergeben werden.
Es ist zu beachten, dass Breite und Höhe der Projektorparameter
im Kameraaufbaumodell (in Index 1) zu 'pattern_width'
und 'pattern_height' des Modells für strukturiertes Licht passen
müssen. In folgenden Aufrufen von decode_structured_light_pattern
und reconstruct_surface_structured_light müssen Breite und Höhe der
Kameraparameter im Kameraaufbaumodell (in Index 0) zur
Größe der Eingabebilder von decode_structured_light_pattern passen.
Zunächst werden nur Projektoren unterstützt, die als inverse projektive Flächenkameras modelliert werden können, d.h. nur Projektoren vom Typ 'area_scan_division' und 'area_scan_polynomial'. Für die Kamera werden alle Typen von Flächenkameras außer hyperzentrischen unterstützt.
Wird das 'camera_setup_model' verändert, werden alle möglicherweise
verfügbaren Ergebnisse gelöscht. Daher muss decode_structured_light_pattern
aufgerufen werden, bevor die Oberfläche mit
reconstruct_surface_structured_light rekonstruiert werden kann.
Default: HNULL
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.
StructuredLightModel (input_control, Zustand wird modifiziert) structured_light_model → (handle)
Handle des Modells für strukturiertes Licht.
GenParamName (input_control) attribute.name(-array) → (string)
Name des zu ändernden Parameters.
Default: 'min_stripe_width'
Werteliste: 'camera_setup_model', 'derivative_sigma', 'min_gray_difference', 'min_stripe_width', 'normalization', 'pattern_height', 'pattern_orientation', 'pattern_type', 'pattern_width', 'persistence', 'single_stripe_width'
GenParamValue (input_control) attribute.value(-array) → (integer / real / string)
Neuer Wert des Parameters.
Default: 32
Wertevorschläge: 0, 0.01, 0.5, 0.7, 1, 1.4, 5, 50.0, 64, 128, 256, 1024, 'true', 'false', 'both', 'vertical', 'horizontal', 'global', 'inverted_pattern', 'gray_code_and_phase_shift', 'gray_code', 'single_stripe'
* Create the model
create_structured_light_model ('deflectometry', StructuredLightModel)
* Set the size of the monitor
set_structured_light_model_param (StructuredLightModel, \
'pattern_width', 1600)
set_structured_light_model_param (StructuredLightModel, \
'pattern_height', 1200)
* Set the smallest width of the stripes in the pattern
set_structured_light_model_param (StructuredLightModel, \
'min_stripe_width', 8)
* Generate the patterns to project
gen_structured_light_pattern (PatternImages, StructuredLightModel)
* Set the expected black/white contrast in the region of interest
set_structured_light_model_param (StructuredLightModel, \
'min_gray_difference', 70)
* Decode the camera images
decode_structured_light_pattern (CameraImages, StructuredLightModel)
* Get the computed correspondences and defects
get_structured_light_object (CorrespondenceImages, StructuredLightModel, \
'correspondence_image')
set_structured_light_model_param (StructuredLightModel, 'derivative_sigma', \
Sigma)
get_structured_light_object (DefectImage, StructuredLightModel, \
'defect_image')
Der Operator set_structured_light_model_param gibt 2 (
H_MSG_TRUE)
zurück,
sofern alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung
ausgelöst.
get_structured_light_model_param
3D Metrology