KlassenKlassenKlassenKlassen | | | | Operatoren

apply_metrology_modelapply_metrology_modelApplyMetrologyModelapply_metrology_modelApplyMetrologyModelApplyMetrologyModel (Operator)

Name

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

Signatur

apply_metrology_model(Image : : MetrologyHandle : )

Herror apply_metrology_model(const Hobject Image, const Hlong MetrologyHandle)

Herror T_apply_metrology_model(const Hobject Image, const Htuple MetrologyHandle)

Herror apply_metrology_model(Hobject Image, const HTuple& MetrologyHandle)

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

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

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

void HOperatorSetX.ApplyMetrologyModel(
[in] IHUntypedObjectX* Image, [in] VARIANT MetrologyHandle)

void HMetrologyModelX.ApplyMetrologyModel([in] IHImageX* Image)

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

void HMetrologyModel.ApplyMetrologyModel(HImage image)

Beschreibung

apply_metrology_modelapply_metrology_modelApplyMetrologyModelapply_metrology_modelApplyMetrologyModelApplyMetrologyModel lokalisiert die Kanten der Metrology-Messobjekte im Bild ImageImageImageImageImageimage und passt die dazugehörigen geometrischen Formen an die gefundenen Kantenpositionen an. Das Messmodell ist im Handle MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle definiert und beinhaltet genäherte Werte für die geometrischen Formen (siehe create_metrology_modelcreate_metrology_modelCreateMetrologyModelcreate_metrology_modelCreateMetrologyModelCreateMetrologyModel 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_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos oder fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePos 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""min_score" des Operators set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParam), 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""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_paramSetMetrologyObjectParamset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParam 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'"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_resultGetMetrologyObjectResultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResult 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""camera_param" und 'plane_pose'"plane_pose""plane_pose""plane_pose""plane_pose""plane_pose" mittels set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParam 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_contourGetMetrologyObjectResultContourget_metrology_object_result_contourGetMetrologyObjectResultContourGetMetrologyObjectResultContour 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 ImageImageImageImageImageimage 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_sizeSetMetrologyModelImageSizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSize gesetzt werden). Dies führt zu längeren Laufzeiten des Operators.

Es ist zu beachten, dass apply_metrology_modelapply_metrology_modelApplyMetrologyModelapply_metrology_modelApplyMetrologyModelApplyMetrologyModel den Definitionsbereich von ImageImageImageImageImageimage aus Geschwindigkeitsgründen ignoriert (siehe auch measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos).

Parallelisierung

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Eingabebild.

MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle (input_control, Zustand wird modifiziert)  metrology_model HMetrologyModel, HTupleHTupleHMetrologyModel, HTupleHMetrologyModelX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Messmodells.

Ergebnis

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

Vorgänger

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGeneric, add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure, add_metrology_object_ellipse_measureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasure, add_metrology_object_line_measureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasure, add_metrology_object_rectangle2_measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2Measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measure, align_metrology_modelalign_metrology_modelAlignMetrologyModelalign_metrology_modelAlignMetrologyModelAlignMetrologyModel, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParam, set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParam

Nachfolger

get_metrology_object_resultget_metrology_object_resultGetMetrologyObjectResultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResult, get_metrology_object_result_contourget_metrology_object_result_contourGetMetrologyObjectResultContourget_metrology_object_result_contourGetMetrologyObjectResultContourGetMetrologyObjectResultContour, get_metrology_object_measuresget_metrology_object_measuresGetMetrologyObjectMeasuresget_metrology_object_measuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasures

Siehe auch

set_metrology_object_fuzzy_paramset_metrology_object_fuzzy_paramSetMetrologyObjectFuzzyParamset_metrology_object_fuzzy_paramSetMetrologyObjectFuzzyParamSetMetrologyObjectFuzzyParam, read_metrology_modelread_metrology_modelReadMetrologyModelread_metrology_modelReadMetrologyModelReadMetrologyModel, write_metrology_modelwrite_metrology_modelWriteMetrologyModelwrite_metrology_modelWriteMetrologyModelWriteMetrologyModel

Modul

2D Metrology


KlassenKlassenKlassenKlassen | | | | Operatoren