KlassenKlassenKlassenKlassen | | | | Operatoren

create_metrology_modelcreate_metrology_modelCreateMetrologyModelcreate_metrology_modelCreateMetrologyModelCreateMetrologyModel (Operator)

Name

create_metrology_modelcreate_metrology_modelCreateMetrologyModelcreate_metrology_modelCreateMetrologyModelCreateMetrologyModel — Anlegen der Datenstruktur, die für das Messen von geometrischen Forme notwendig ist.

Signatur

create_metrology_model( : : : MetrologyHandle)

Herror create_metrology_model(Hlong* MetrologyHandle)

Herror T_create_metrology_model(Htuple* MetrologyHandle)

Herror create_metrology_model(Hlong* MetrologyHandle)

void HMetrologyModel::CreateMetrologyModel()

void CreateMetrologyModel(HTuple* MetrologyHandle)

void HMetrologyModel::HMetrologyModel()

void HMetrologyModel::CreateMetrologyModel()

void HOperatorSetX.CreateMetrologyModel([out] VARIANT* MetrologyHandle)

void HMetrologyModelX.CreateMetrologyModel()

static void HOperatorSet.CreateMetrologyModel(out HTuple metrologyHandle)

public HMetrologyModel()

void HMetrologyModel.CreateMetrologyModel()

Beschreibung

create_metrology_modelcreate_metrology_modelCreateMetrologyModelcreate_metrology_modelCreateMetrologyModelCreateMetrologyModel legt ein Messmodell an, d.h., die Datenstruktur, die notwendig ist, um Objekte einer bestimmten geometrischen Form (Metrology-Messobjekte) mittels 2D-Messtechnik zu messen, und gibt dessen Handle MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle zurück.

Grundprinzip der 2D-Messtechnik

Im Allgemeinen müssen für die 2D-Messtechnik genäherte Werte für die Positionen, Orientierungen und geometrischen Formen des Objekts vorhanden sein, um Messungen durchführen zu können. Innerhalb des Bildes, welches die Objekte zeigt, werden die Grenzen dieser genäherten Objekte genutzt, um die tatsächlichen Kanten der Objekte zu lokalisieren und um die Parameter der geometrischen Formen anzupassen, damit diese optimal zu den Bilddaten passen. Die Ergebnisse der Messungen sind die optimierten Parameter. Das Messmodell wird genutzt, um alle notwendigen Informationen wie die Startparameter für die Positionen und die geometrischen Formen der Metrology-Messobjekte, die Parameter zur Steuerung der Messungen und die Ergebnisse der Messungen zu speichern. Die geometrischen Formen, die mittels der 2D-Messtechnik gemessen werden können, umfassen Kreise, Ellipsen, Rechtecke und Linien.

Die Kanten des Objekts im Bild werden in den sogenannten Messregionen gesucht. Diese sind rechteckige Regionen, deren Hauptachse senkrecht zum Rand der genäherten Objekte liegen. Ihre Mittelpunkte finden sich auf dem Rand. Parameter, die die Größe und Verteilung der Messregionen beeinflussen, werden zusammen mit den genäherten Formparametern für jedes Objekt festgelegt. Die Messrichtung der Kantendetektion innerhalb jeder Messregion des Objekts verläuft von innen nach außen für Objekte vom Typ Kreis, Ellipse und Rechteck sowie von links nach rechts für Objekte vom Typ Linie (gesehen vom Startpunkt zum Endpunkt der Linie). Intern werden die Kanten mit den Operatoren measure_posmeasure_posMeasurePosmeasure_posMeasurePosMeasurePos oder fuzzy_measure_posfuzzy_measure_posFuzzyMeasurePosfuzzy_measure_posFuzzyMeasurePosFuzzyMeasurePos gefunden. Letztere nutzt Fuzzy-Methoden und wird nur genutzt, wenn mindestens eine Fuzzy-Funktion gesetzt ist bevor die Kanten gemessen werden. Die Anpassung der geometrischen Form an die gefundenen Kantenpositionen wird mittels eines RANSAC-Algorithmus vorgenommen.

Im Folgenden werden die einzelnen Schritte, die für derartige Messungen notwendig sind, beschrieben:

Bereitstellen der genäherten Werte

Für eine effiziente Messung sollte nach dem Erstellen des Messmodells mit create_metrology_modelcreate_metrology_modelCreateMetrologyModelcreate_metrology_modelCreateMetrologyModelCreateMetrologyModel die Größe des Bildes, auf dem die Messungen durchgeführt werden sollen, mit set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSize festgelegt werden. Anschließend werden die Metrology-Messobjekt zum Messmodell hinzugefügt. Jedes Metrology-Messobjekt des besteht aus genäherten Parametern für die Form des zugehörigen Objekts im Bild und aus Parametern, die die Messungen steuern. Die Metrology-Messobjekte werden mit den Operatoren add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure für Metrology-Messobjekte des Typs Kreis, add_metrology_object_ellipse_measureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureadd_metrology_object_ellipse_measureAddMetrologyObjectEllipseMeasureAddMetrologyObjectEllipseMeasure für Metrology-Messobjekte des Typs Ellipse, add_metrology_object_rectangle2_measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2Measureadd_metrology_object_rectangle2_measureAddMetrologyObjectRectangle2MeasureAddMetrologyObjectRectangle2Measure für Metrology-Messobjekte des Typs Recheck und add_metrology_object_line_measureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureadd_metrology_object_line_measureAddMetrologyObjectLineMeasureAddMetrologyObjectLineMeasure für Metrology-Messobjekte des Typs Linie festgelegt. Die Parameter, die die Messungen steuern enthalten z.B. Parameter, die die halbe Länge der Messregionen und den Abstand zwischen diesen festlegen. Um die Messregionen visuell zu überprüfen, kann auf die XLD-Konturen ihrer Begrenzung mit dem Operator get_metrology_object_measuresget_metrology_object_measuresGetMetrologyObjectMeasuresget_metrology_object_measuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasures zugegriffen werden. Desweiteren können mehrere generische Parameter für jedes Metrology-Messobjekt festgelegt werden.

Ändern der Parameter

Viele Parameter können beim Hinzufügen der Metrology-Messobjekte gesetzt werden. Einige davon können anschließend noch mithilfe des Operators set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParam geändert werden. Wenn zum Beispiel eine Kamerakalibrierung vorhanden ist, können die Kameraparameter und die Pose des Weltkoordinatensystems (WCS) mithilfe des Operators set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParam zu den Metrology-Messobjekten hinzugefügt werden. In diesem Fall werden die Ergebnisse der Messungen im Weltkoordinatensystem zurückgegeben. Zusätzlich kann das Messmodell oder die Metrology-Messobjekte mit copy_metrology_modelcopy_metrology_modelCopyMetrologyModelcopy_metrology_modelCopyMetrologyModelCopyMetrologyModel oder copy_metrology_objectcopy_metrology_objectCopyMetrologyObjectcopy_metrology_objectCopyMetrologyObjectCopyMetrologyObject kopiert werden. Für ein Alignment können die Metrology-Messobjekte unter Verwendung von transform_metrology_objecttransform_metrology_objectTransformMetrologyObjecttransform_metrology_objectTransformMetrologyObjectTransformMetrologyObject transformiert werden. Um ein Messmodell in eine Datei zu schreiben ist der Operator write_metrology_modelwrite_metrology_modelWriteMetrologyModelwrite_metrology_modelWriteMetrologyModelWriteMetrologyModel zu verwenden. Das Model kann unter Verwendung des Operators read_metrology_modelread_metrology_modelReadMetrologyModelread_metrology_modelReadMetrologyModelReadMetrologyModel wieder eingelesen werden. Die Indizes der Metrology-Messobjekte können mit get_metrology_object_indicesget_metrology_object_indicesGetMetrologyObjectIndicesget_metrology_object_indicesGetMetrologyObjectIndicesGetMetrologyObjectIndices abgefragt werden.

Durchführen der Messungen

Wenn alle Metrology-Messobjekte zum Messmodell hinzugefügt und alle Parameter endgültig gesetzt sind, werden die Messungen im Bild mit dem Operator apply_metrology_modelapply_metrology_modelApplyMetrologyModelapply_metrology_modelApplyMetrologyModelApplyMetrologyModel durchgeführt. Der Operator findet die Kanten innerhalb der Messregionen und passt die festgelegten geometrischen Formen an die Kantenpositionen unter Verwendung eines RANSAC-Algorithmus an. Wenn mehr als eine Instanz der zurückgegebenen Objektform benötigt wird, muss der generische Parameter 'num_instances'"num_instances""num_instances""num_instances""num_instances""num_instances" auf die Anzahl benötigter Instanzen gesetzt werden. Der Parameter kann beim Setzen der einzelnen Metrology-Messobjekte oder später mit dem Operator set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParam gesetzt werden.

Zugriff auf die Ergebnisse

Nach der Messung kann auf die Ergebnisse zugegriffen werden. Die angepassten geometrischen Formen der Objekte werden mit dem Operator get_metrology_object_resultget_metrology_object_resultGetMetrologyObjectResultget_metrology_object_resultGetMetrologyObjectResultGetMetrologyObjectResult abgefragt. Zu beachten ist, dass, falls mehr als eine Instanz eines Objekts zurückgegeben wird, die Reihenfolge der zurückgegebenen Instanzen zufällig ist, d.h. sie ist kein Maß für die Qualität der Anpassung. Auf die Zeilen- und Spaltenkoordinaten der gefundenen Kanten kann mit dem Operator get_metrology_object_measuresget_metrology_object_measuresGetMetrologyObjectMeasuresget_metrology_object_measuresGetMetrologyObjectMeasuresGetMetrologyObjectMeasures zugegriffen werden. Wenn das Messmodell nicht mehr benötigt wird sollte der Speicherplatz mit clear_metrology_modelclear_metrology_modelClearMetrologyModelclear_metrology_modelClearMetrologyModelClearMetrologyModel freigegeben werden.

Achtung

Es ist zu beachten, dass für eine optimale Laufzeit nach dem Aufruf des Operators create_metrology_modelcreate_metrology_modelCreateMetrologyModelcreate_metrology_modelCreateMetrologyModelCreateMetrologyModel der Operator set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSize aufgerufen werden sollte.

Ein Messmodell 'MetrologyHandle'"MetrologyHandle""MetrologyHandle""MetrologyHandle""MetrologyHandle""MetrologyHandle" kann nur von einem Thread aus verwendet werden. Verschiedene Messmodelle können dagegen in unterschiedlichen Threads genutzt werden.

Parallelisierung

Parameter

MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle (output_control)  metrology_model HMetrologyModel, HTupleHTupleHMetrologyModel, HTupleHMetrologyModelX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Messmodells.

Beispiel (HDevelop)

read_image (Image, 'fabrik')
create_metrology_model (MetrologyHandle)
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)  
add_metrology_object_rectangle2_measure (MetrologyHandle, 270, 230, 0, 30, \
                                  25, 10, 2, 1, 30, [], [], Index)
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result (MetrologyHandle, Index, 'all', 'result_type', \
                      'param', Rectangle)
gen_rectangle2_contour_xld (ContRect, Rectangle[0], Rectangle[1], \
                            Rectangle[2], Rectangle[3], Rectangle[4])
clear_metrology_model (MetrologyHandle)

Ergebnis

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

Nachfolger

set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSize

Modul

2D Metrology


KlassenKlassenKlassenKlassen | | | | Operatoren