apply_metrology_modelT_apply_metrology_modelApplyMetrologyModelApplyMetrologyModel (Operator)

Name

apply_metrology_modelT_apply_metrology_modelApplyMetrologyModelApplyMetrologyModel — Messen und Anpassen der geometrischen Formen aller Metrology-Messobjekte eines Messmodells.

Signatur

apply_metrology_model(Image : : MetrologyHandle : )

Herror T_apply_metrology_model(const Hobject Image, const Htuple MetrologyHandle)

void ApplyMetrologyModel(const HObject& Image, const HTuple& MetrologyHandle)

void HMetrologyModel::ApplyMetrologyModel(const HImage& Image) const

static void HOperatorSet.ApplyMetrologyModel(HObject image, HTuple metrologyHandle)

void HMetrologyModel.ApplyMetrologyModel(HImage image)

Beschreibung

apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel lokalisiert die Kanten der Metrology-Messobjekte im Bild ImageImageImageImageimage und passt die dazugehörigen geometrischen Formen an die gefundenen Kantenpositionen an.

Das Konzept der 2D-Messtechnik ist bei der Einleitung zu Kapitel 2D-Messtechnik beschrieben.

Das Messmodell ist im Handle MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle definiert und beinhaltet genäherte Werte für die geometrischen Formen. 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_posmeasure_posMeasurePosMeasurePosMeasurePos oder fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePosFuzzyMeasurePos 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'"min_score""min_score""min_score""min_score" des Operators set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParam), 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'"num_instances""num_instances""num_instances""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_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParam gesetzt werden.

Zu beachten ist, dass für jede Instanz des Metrology-Messobjekts verschiedene Kantenpositionen genutzt werden, d.h., dass für die Berechnung der zweiten Instanz keine Kantenpositionen verwendet werden, die bereits für das Fitting der ersten Instanz verwendet wurden. Der Algorithmus bricht ab, wenn 'num_instances'"num_instances""num_instances""num_instances""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_resultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResultGetMetrologyObjectResult 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'"camera_param""camera_param""camera_param""camera_param" und 'plane_pose'"plane_pose""plane_pose""plane_pose""plane_pose" mittels set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParam 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_contourget_metrology_object_result_contourGetMetrologyObjectResultContourGetMetrologyObjectResultContourGetMetrologyObjectResultContour abgefragt werden.

Achtung

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 ImageImageImageImageimage nicht gleich der Breite oder Höhe ist, die im Metrology-Messobjekt gespeichert ist (kann z.B. im Operator set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeSetMetrologyModelImageSize gesetzt werden). Dies führt zu längeren Laufzeiten des Operators.

Es ist zu beachten, dass apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel den Definitionsbereich von ImageImageImageImageimage aus Geschwindigkeitsgründen ignoriert (siehe auch measure_posmeasure_posMeasurePosMeasurePosMeasurePos).

Ausführungsinformationen

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.

Parameter

ImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHobject (byte / uint2 / real)

Eingabebild.

MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle (input_control, Zustand wird modifiziert)  metrology_model HMetrologyModel, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Messmodells.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric, add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure, add_metrology_object_ellipse_measureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasure, add_metrology_object_line_measureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasure, add_metrology_object_rectangle2_measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measure, align_metrology_modelalign_metrology_modelAlignMetrologyModelAlignMetrologyModelAlignMetrologyModel, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParam, set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParam

Nachfolger

get_metrology_object_resultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResultGetMetrologyObjectResult, get_metrology_object_result_contourget_metrology_object_result_contourGetMetrologyObjectResultContourGetMetrologyObjectResultContourGetMetrologyObjectResultContour, get_metrology_object_measuresget_metrology_object_measuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasures

Siehe auch

set_metrology_object_fuzzy_paramset_metrology_object_fuzzy_paramSetMetrologyObjectFuzzyParamSetMetrologyObjectFuzzyParamSetMetrologyObjectFuzzyParam, read_metrology_modelread_metrology_modelReadMetrologyModelReadMetrologyModelReadMetrologyModel, write_metrology_modelwrite_metrology_modelWriteMetrologyModelWriteMetrologyModelWriteMetrologyModel

Modul

2D Metrology