| Operatoren |
set_metrology_object_param — Setzen von Parametern für die Metrology-Messobjekte eines Messmodells.
set_metrology_object_param( : : MetrologyHandle, Indices, GenParamName, GenParamValue : )
set_metrology_object_param erlaubt es, zahlreiche Parameter der Metrology-Messobjekte zu verändern (siehe create_metrology_model für das Grundprinzip der 2D-Messtechnik).
Das Messmodell ist durch das Handle MetrologyHandle definiert. Der Parameter Indices legt die Metrology-Messobjekte fest, für die die Parameter gesetzt werden sollen. Die Parameter aller Metrology-Messobjekte werden gesetzt, wenn für den Parameter Indices 'all' übergeben wird. Alle Parameter können auch direkt beim Anlegen des Metrology-Messobjekts mit add_metrology_object_circle_measure, add_metrology_object_ellipse_measure, add_metrology_object_line_measure oder add_metrology_object_rectangle2_measure übergeben werden. Die aktuelle Konfiguration kann mit Hilfe von get_metrology_object_param ausgelesen werden. Alle Parameter, die mit dem Operator set_metrology_object_param gesetzt werden können, können mit dem Operator reset_metrology_object_param zurückgesetzt werden.
Im Folgenden werden alle generischen Parameter mit den Defaultwerten aufgelistet. In den meisten Fällen reichen die Standardwerte aus, so dass keine Anpassung nötig ist. Die folgenden generischen Parameter GenParamName und die dazugehörigen Werte GenParamValue sind verfügbar - sortiert nach verschiedenen Kategorien:
Erstellen der Messregionen:
Der Wert des Parameters legt die halbe Kantentenlänge der Messregionen senkrecht zum Objektrand fest. Der Wert entspricht der Messtoleranz. Die Einheit des Wertes ist Pixel.
Wertevorschläge: 10.0, 20.0, 30.0
Defaultwert: 20.0
Restriktion: 'measure_length1' >= 1.0
Der Wert des Parameters legt die halbe Kantentenlänge der Messregionen tangential zum Objektrand fest. Die Einheit des Wertes ist Pixel.
Wertevorschläge: 3.0, 5.0, 10.0
Defaultwert: 5.0
Restriktion: 'measure_length2' >= 0.0
Der Wert des Parameters legt den gewünschten Abstand zwischen den Mittelpunkten zweier Messregionen fest. Führt der Abstand zu zu wenig Messregionen, hat dieser Parameter keinen Einfluss auf die Anzahl an Messregionen und wird auf die benötigte Mindestanzahl an Messregionen erhöht. Für ein Metrology-Messobjekt vom Typ Kreis ist diese Anzahl 3. Für ein Metrology-Messobjekt vom Typ Ellipse ist diese Anzahl 5. Für ein Metrology-Messobjekt vom Typ Linie ist diese Anzahl 2. Für ein Metrology-Messobjekt vom Typ Rechteck ist diese Anzahl pro Seite 2, d.h. insgesamt 8. Wird dieser Wert gesetzt, hat der Wert des Parameters 'num_measures' keinen Einfluss. Die Einheit des Wertes ist Pixel.
Wertevorschläge: 5.0, 15.0, 20.0, 30.0
Defaultwert: 10.0
Der Wert des Parameters legt die gewünschte Anzahl der Messregionen fest. Wird der Wert zu klein gewählt, hat dieser Parameter keinen Einfluss auf die Anzahl an Messregionen und wird auf die benötigte Mindestanzahl an Messregionen erhöht. Für ein Metrology-Messobjekt vom Typ Kreis ist diese Anzahl 3. Für ein Metrology-Messobjekt vom Typ Ellipse ist diese Anzahl 5. Für ein Metrology-Messobjekt vom Typ Linie ist diese Anzahl 2. Für ein Metrology-Messobjekt vom Typ Rechteck ist diese Anzahl pro Seite 2, d.h. insgesamt 8. Wird dieser Wert gesetzt, hat der Wert des Parameters 'measure_distance' keinen Einfluss.
Wertevorschläge: 8, 10, 16, 20, 30, 50, 100
Kantendetektion:
Der Wert des Parameters legt das Sigma für die Gaußglättung fest. Die Bedeutung, die Verwendung und der Defaultwert des Parameters ist für den Operator measure_pos mit den Parametern Sigma, Threshold und Select beschrieben.
Der Wert des Parameters legt die minimale Amplitude einer Kante fest. Die Bedeutung, die Verwendung und der Defaultwert des Parameters ist für den Operator measure_pos mit dem Parameter Threshold beschrieben.
Der Wert des Parameters legt die Auswahl der Endpunkte der Kanten fest. Die Bedeutung, die Verwendung und der Defaultwert des Parameters ist für den Operator measure_pos mit dem Parameter Select beschrieben.
Der Wert des Parameters legt fest, ob die Dunkel-Hell- oder Hell-Dunkel-Übergänge für die Kanten genutzt werden. Die Bedeutung und die Verwendung der Werte 'all', 'positive' und 'negative', die für den Parameter 'measure_transition' gesetzt werden können, ist für den Operator measure_pos mit dem Parameter Transition beschrieben. Zusätzlich kann 'measure_transition' auf den Wert 'uniform' gesetzt werden. Dann werden alle positiven Kanten (Dunkel-Hell-Übergänge) und alle negativen Kanten (Hell-Dunkel-Übergänge) bei der Kantendetektion detektiert, aber beim Anpassen der geometrischen Formen werden die Kanten unterschiedlicher Typen getrennt behandelt, d.h. für jede Instanz einer geometrischen Form werden entweder nur die positiven Kanten oder nur die negativen Kanten verwendet.
Die Messrichtung innerhalb der Messregion verläuft von innen nach außen für ein Metrology-Messobjekt vom Typ Kreis, Ellipse und Rechteck. Für ein Metrology-Messobjekt vom Typ Linie verläuft die Messrichtung innerhalb der Messregion von links nach rechts, gesehen vom ersten Punkt der Linie (siehe RowBegin und ColumnBegin des Operators add_metrology_object_line_measure).
Wertevorschläge: 'all', 'negative', 'positive', 'uniform'
Defaultwert: 'all'
Der Wert des Parameters legt die Art der zu verwendenden Interpolation fest. Die Bedeutung, die Verwendung und der Defaultwert des Parameters ist für den Operator gen_measure_rectangle2 mit dem Parameter Interpolation beschrieben.
Anpassen der geometrischen Formen:
Der Parameter legt fest, welche Bewertung eine potentielle Instanz des Metrology-Messobjekts mindestens besitzen muss, damit diese als eine gültige Instanz des Metrology-Messobjekts angesehen wird. Der Score ist die Anzahl der Kanten, die für die Berechnung des Ergebnisses verwendet wird, dividiert durch die maximale Anzahl von Messregionen (siehe apply_metrology_model). Falls erwartet werden kann, dass alle Kanten des Metrology-Messobjekts in den Modellregionen vorhanden sind, kann der Parameter 'min_score' auf so hohe Werte wie 0.8 oder sogar 0.9 gesetzt werden. Zu beachten ist, dass in Bildern mit vielen Störobjekten oder mit starker Hintergrundtextur der Wert für den Parameter 'min_score' nicht deutlich niedriger als 0.7 gesetzt werden sollte, da ansonsten falsche Instanzen des Metrology-Messobjekts gefunden werden könnten.
Wertevorschläge: 0.5, 0.7, 0.9
Defaultwert: 0.7
Der Parameter legt die maximale Anzahl der anzupassenden Instanzen für jedes Metrology-Messobjekt fest, d.h. wenn diese Anzahl an Instanzen erreicht wurde, wird die Anpassung abgebrochen (siehe apply_metrology_model). Der Score für erfolgreich angepasste Instanzen der geometrischen Formen muss mindestens den Wert 'min_score' haben.
Wertevorschläge: 1, 2, 3, 4
Defaultwert: 1
Der RANSAC-Algorithmus schätzt die Anzahl von Iterationen, die benötigt werden, um die gesuchte geometrische Form anzupassen. Die Schätzung berücksichtigt dabei die Kantendaten und die Komplexität der Form. Mit dem Parameter 'max_num_iterations' kann eine obere Grenze für die vom RANSAC-Algorithmus berechnete Anzahl an Iterationen gesetzt werden. Die Anzahl der Iterationen wird weiterhin vom RANSAC-Algorithmus geschätzt, kann den Wert von 'max_num_iterations' aber nicht übersteigen. Das Setzen von 'max_num_iterations', kann hilfreich sein, wenn die Qualität der gefundenen geometrischen Form weniger wichtig ist als das Einhalten zeitlicher Grenzen. Wird der Parameter zu niedrig gesetzt, liefert der Algorithmus schlechtere oder keine Ergebnisse.
Standardmäßig ist der Wert auf -1 gesetzt, d.h. es ist keine obere Grenze für die berechnete Anzahl an Iterationen vorhanden.
Wertevorschläge: 10, 100, 1000
Defaultwert: -1
Der Parameter legt den Startwert für den Zufallsgenerator fest, welcher vom RANSAC-Verfahren innerhalb des Operators apply_metrology_model zur Auswahl der Kanten genutzt wird. Wird der Parameter 'rand_seed' auf einen Wert ungleich 0 gesetzt, so liefert der Operator bei jedem Aufruf mit denselben Parametern auch dasselbe Resultat, da der intern verwendete Zufallsgenerator mit dem Wert des Parameters 'rand_seed' initialisiert wird.
Wird der Parameter 'rand_seed' auf den Wert 0 gesetzt, so wird der Zufallsgenerator mit der aktuellen Zeit initialisiert. Daher sind in diesem Fall die Ergebnisse unter Umständen nicht reproduzierbar.
Wertevorschläge: 0, 1, 42
Defaultwert: 42
Der Parameter legt fest, welche der Ergebnisse der Messungen gültig sind. Wird der Parameter 'instances_outside_measure_regions' auf den Wert 'false' gesetzt, sind nur Instanzen eines Metrology-Messobjekts gültig, die innerhalb der Hauptachsen der Messregionen dieses Metrology-Messobjekts liegen. Instanzen, die ungültig sind, werden nicht gespeichert. Wird der Parameter 'instances_outside_measure_regions' auf den Wert 'true' gesetzt, so sind alle Instanzen des Metrology-Messobjekts gültig.
Wertevorschläge: 'false', 'true'
Defaultwert: 'false'
Kalibrierung:
Die internen Kameraparameter. Um kalibrierte Messungen in metrischen Koordinaten durchführen zu können, müssen die Werte der internen Kameraparameter zusammen mit der 3D-Lage der Messebene gesetzt werden (siehe write_cam_par für die Reihenfolge der internen Kameraparameter und das zu Grunde liegende Kameramodell). In vielen Fällen sind die internen Kameraparameter das Ergebnis einer vorherigen Kamerakalibrierung mit dem Operator calibrate_cameras. Falls 'camera_param' auf [] gesetzt ist, werden die Werte der internen Kameraparameter gelöscht. Wenn die internen Kameraparameter und die 3D-Lage des Weltkoordinatensystems gesetzt sind, werden von apply_metrology_model die Ergebnisse in metrischen Koordinaten berechnet. Der Parameter Indices muss auf 'all' gesetzt sein, wenn die Kameraparameter spezifiziert werden. Es ist pro Messmodell nur ein Satz von internen Kameraparameter erlaubt.
Defaultwert: []
Die 3D-Lage des Weltkoordinatensystems in Kamerakoordinaten. Um kalibrierte Messungen in metrischen Koordinaten durchführen zu können, müssen die Werte der internen Kameraparameter zusammen mit der 3D-Lage der Messebene gesetzt werden (siehe write_cam_par für die Reihenfolge der internen Kameraparameter und das zu Grunde liegende Kameramodell). In vielen Fällen ist das Weltkoordinatensystem das Ergebnis einer vorherigen Kamerakalibrierung mit dem Operator calibrate_cameras. Falls 'world_pose' auf [] gesetzt ist, werden die Werte des Weltkoordinatensystems gelöscht. Wenn die internen Kameraparameter und die 3D-Lage des Weltkoordinatensystems gesetzt sind, werden von apply_metrology_model die Ergebnisse in metrischen Koordinaten berechnet. Zu beachten ist, dass die Messebene nicht gekippt sein sollte. Es ist pro Messmodell nur ein Satz von internen Kameraparameter erlaubt.
Defaultwert: []
Ein Messmodell 'MetrologyHandle' kann nur von einem Thread aus verwendet werden. Verschiedene Messmodelle können dagegen in unterschiedlichen Threads genutzt werden.
Handle des Messmodells.
Indizes der Metrology-Messobjekte.
Defaultwert: 'all'
Wertevorschläge: 'all', 0, 1, 2
Namen der generischen Parameter.
Defaultwert: 'num_instances'
Werteliste: 'camera_param', 'instances_outside_measure_regions', 'max_num_iterations', 'measure_distance', 'measure_interpolation', 'measure_length1', 'measure_length2', 'measure_select', 'measure_sigma', 'measure_threshold', 'measure_transition', 'min_score', 'num_instances', 'num_measures', 'rand_seed', 'world_pose'
Werte der generischen Parameter.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 4, 5, 10, 20, 'all', 'true', 'false', 'first', 'last', 'positive', 'negative', 'uniform', 'nearest_neighbor', 'bilinear', 'bicubic'
Sind die Parameterwerte korrekt, dann liefert set_metrology_object_param den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
apply_metrology_model, reset_metrology_object_param, get_metrology_object_param
set_metrology_object_fuzzy_param
2D Metrology
| Operatoren |