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
Defaultwerte: '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 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.
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 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.
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'
Defaultwerte: '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'
Defaultwerte: '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
Defaultwerte: 30
Parameter, die das Defektbild beeinflussen:
Setzt das Sigma der Gaußfunktion (d.h. das Ausmaß der Glättung) zur Faltung der Korrenspondenzbilder, um das Defektbild zu berechnen.
Werte: Gleitkommazahlen oder ganze Zahlen größer oder gleich 0.01
Defaultwert: 2
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.
Defaultwert: 'min_stripe_width'
Werteliste: '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.
Defaultwert: 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