| Operatoren |
apply_metrology_model — Messen und Anpassen der geometrischen Formen aller Metrology-Messobjekte eines Messmodells.
apply_metrology_model(Image : : MetrologyHandle : )
apply_metrology_model lokalisiert die Kanten der Metrology-Messobjekte im Bild Image und passt die dazugehörigen geometrischen Formen an die gefundenen Kantenpositionen an. Das Messmodell ist im Handle MetrologyHandle definiert und beinhaltet genäherte Werte für die geometrischen Formen (siehe create_metrology_model für das Grundprinzip der 2D-Messtechnik). Die Messungen werden folgendermaßen durchgeführt:
Ermittlung der Kantenpositionen
Innerhalb der Messregionen der Metrology-Messobjekte werden die Positionen der Kanten ermittelt. Die Lage der Kanten wird intern mit dem Operator measure_pos oder fuzzy_measure_pos berechnet. Letzterer wird genutzt, wenn mindestens eine Fuzzy-Funktion für das Metrology-Messobjekt gesetzt ist.
Anpassen der geometrischen Formen an die Kantenpositionen
Die geometrischen Formen der Metrology-Messobjekte werden so angepasst, dass sie optimal zu den resultierenden Kantenpositionen passen. Dabei wird ein RANSAC-Verfahren dazu verwendet die Mindestanzahl von Startkantenpositionen auszuwählen, die notwendig ist, um eine Instanz einer bestimmten geometrischen Form zu erstellen. Zum Beispiel werden bei einem Metrology-Messobjekt vom Typ Kreis drei Kantenpositionen ausgewählt. Anschließend werden Kantenpositionen festgelegt, die sich in der Nähe der geometrischen Form der zugehörigen Instanz befinden und, falls die Anzahl der geeigneten Kantenpositionen ausreichend ist (siehe den generischen Parameter 'min_score' des Operators set_metrology_object_param), werden diese für die endgültige Anpassung der geometrischen Form verwendet. Falls die Anzahl der geeigneten Kantenpositionen nicht ausreichend ist, werden andere Startkantenpositionen getestet solange bis eine geeignete Auswahl von Kantenpositionen gefunden wird. An die Kantenpositionen, die für das endgültige Anpassen ausgewählt wurden, wird die geometrische Form angepasst und die Parameter werden im Messmodel abgespeichert. Es ist zu beachten, dass mehr als eine Instanz für jedes Metrology-Messobjekt zurückgegeben wird, wenn der generische Parameter 'num_instances' auf einen Wert größer als 1 gesetzt wird. Dieser und weitere Parameter können beim Hinzufügen des Metrology-Messobjekts zum Messmodell oder seperat mit dem Operator set_metrology_object_param gesetzt werden.
Zu beachten ist, dass für jede Instanz des Metrology-Messobjekts verschiedene Startkantenpositionen genutzt werden, d.h., dass die Startkantenpositionen für eine zweite Instanz bei der Berechnung der ersten Instanz nicht als Startkantenpositionen verwendet wurden. Der Algorithmus bricht ab, wenn 'num_instances' Instanzen gefunden wurden oder wenn die verbleibende Anzahl an geeigneten Startkantenpositionen zu gering für eine weitere Anpassung einer geometrischen Form sind.
Zugriff auf die Ergebnisse
Auf die Ergebnisse der Messungen aus dem Messmodell kann mithilfe von get_metrology_object_result zugegriffen werden. Zu beachten ist, dass, wenn mehr als eine Instanz eines Objekts zurückggegeben wird, die Reihenfolge der zurückgegeben Instanzen zufällig ist, d.h. die Reihenfolge stellt kein Maß für die Qualität der Anpassung dar. Zu beachten ist weiterhin, dass, wenn die Parameter 'camera_param' und 'plane_pose' mittels set_metrology_model_param für das Messmodell gesetzt sind, Weltkoordinaten für das Anpassen genutzt werden. Andernfalls werden Bildkoordinaten verwendet. Die XLD Konturen können mit get_metrology_object_result_contour abgefragt werden.
Es ist zu beachten, dass alle Messregionen aller Metrology-Messobjekte des Messmodells neu berechnet werden müssen, falls die Bildbreite oder die Bildhöhe des Eingabebildes Image nicht gleich der Breite oder Höhe ist, die im Metrology-Messobjekt gespeichert ist (kann z.B. im Operator set_metrology_model_image_size gesetzt werden). Dies führt zu längeren Laufzeiten des Operators.
Es ist zu beachten, dass apply_metrology_model den Definitionsbereich von Image aus Geschwindigkeitsgründen ignoriert (siehe auch measure_pos).
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.Eingabebild.
Handle des Messmodells.
Sind die Parameterwerte korrekt, dann liefert apply_metrology_model den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
add_metrology_object_generic, add_metrology_object_circle_measure, add_metrology_object_ellipse_measure, add_metrology_object_line_measure, add_metrology_object_rectangle2_measure, align_metrology_model, set_metrology_model_param, set_metrology_object_param
get_metrology_object_result, get_metrology_object_result_contour, get_metrology_object_measures
set_metrology_object_fuzzy_param, read_metrology_model, write_metrology_model
2D Metrology
| Operatoren |