add_metrology_object_generic — Hinzufügen eines Metrology-Messobjekts zu einem Messmodell.
add_metrology_object_generic( : : MetrologyHandle, Shape, ShapeParam, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue : Index)
add_metrology_object_generic fügt ein Metrology-Messobjekt vom Typ
Shape zu einem Messmodell hinzu und bereitet
die rechteckigen Messregionen vor.
Das Konzept der 2D-Messtechnik ist bei der Einleitung zu Kapitel 2D-Messtechnik beschrieben.
Das Handle des Messmodells wird in MetrologyHandle übergeben.
Shape definiert den Typ des Objekts der zum Messmodell
hinzugefügt werden soll. add_metrology_object_generic gibt den Index
des hinzugefügten Metrology-Messobjekts im Parameter
Index zurück.
Beachten Sie, dass add_metrology_object_generic die Funktionalität
der Operatoren add_metrology_object_circle_measure,
add_metrology_object_ellipse_measure,
add_metrology_object_rectangle2_measure und
add_metrology_object_line_measure in einem Operator zusammenfasst.
Mittels Shape wird spezifiziert,
welche Art von Metrology-Messobjekt dem Messmodell hinzugefügt wird.
Abhängig vom Wert von Shape werden folgende Werte erwartet:
Die geometrische Form des Metrology-Messobjekts vom Typ Kreis oder Kreisbogen wird durch seinen Mittelpunkt (Row, Column) und den Radius beschrieben.
ShapeParam=[Row, Column, Radius]
Die geometrische Form des Metrology-Messobjekts vom Typ Rechteck wird durch seinen Mittelpunkt (Row, Column), die Orientierung der Hauptachse Phi und die halben Kantenlängen Length1 und Length2 beschrieben. Der Eingabewert für Phi wird automatisch auf das Intervall ]-PI,PI] abgebildet.
ShapeParam=[Row, Column, Phi, Length1, Length2]
Die geometrische Form des Metrology-Messobjekts vom Typ Ellipse wird durch ihren Mittelpunkt (Row, Column), die Orientierung der Hauptachse Phi und die Länge der großen und kleinen Halbachsen Radius1 und Radius2 beschrieben. Der Eingabewert für Phi wird automatisch auf das Intervall ]-PI,PI] abgebildet.
ShapeParam=[Row, Column, Phi, Radius1, Radius2]
Die geometrische Form des Metrology-Messobjekts vom Typ Linie wird durch die Koordinaten des Startpunkts (RowBegin, ColumnBegin) und die Koordinaten des Endpunkts (RowEnd, ColumnEnd) beschrieben.
ShapeParam=[RowBegin, ColumnBegin, RowEnd, ColumnEnd]
add_metrology_object_generic bereitet
die rechteckigen Messregionen vor. Die Messregionen liegen senkrecht
zur Objektkontur. Die halben Kantenlängen der Messregionen senkrecht und
tangential zur Objektkontur werden jeweils in
MeasureLength1 und in MeasureLength2 gesetzt.
Die Mittelpunkte der Messregionen liegen auf dem Rand der Objektkontur.
Der Parameter MeasureSigma legt eine Standardabweichung
für die Glättung der Grauwerte im Bild durch den Operator
apply_metrology_model fest. Auffällige Kanten können mit
dem Parameter MeasureThreshold, der einen Schwellwert für
die Kantenamplitude, d.h. den Absolutbetrag der ersten Ableitung,
angibt, selektiert werden.
In GenParamName und GenParamValue können
generische Parameter übergeben werden.
Setzbar sind alle generischen Parameter, die auch im
Operator set_metrology_object_param zur Verfügung stehen.
In den meisten Fällen reichen die Standardwerte aus, so dass keine
Anpassung nötig ist. Zusätzlich sind die folgenden generischen
Parameter GenParamName und die dazugehörigen Werte
GenParamValue zur Festlegung eines Kreis- oder Ellipsenbogens
nur für Shape = 'circle' oder 'ellipse' verfügbar:
Der Parameter legt den Anfangswinkel des Kreis- bzw. Ellipsenbogens fest. Für eine Ellipse wird der Anfangswinkel relativ zur positiven großen Halbachse gemessen und bezieht sich auf den kleinsten die Ellipse umgebenden Kreis. Der tatsächliche Anfangspunkt der Ellipse ergibt sich aus dem Schnittpunkt der Ellipse mit der Orthogonalprojektion des entsprechenden Kreispunktes auf die große Halbachse. Um einen geschlossenen Kreis bzw. eine geschlossene Ellipse zu erhalten, müssen der Wert des Parameters 'start_phi' auf 0 und der Wert des Parameters 'end_phi' auf gesetzt sein (bei positivem Umlaufsinn). Die Eingabewerte werden automatisch auf das Intervall abgebildet.
Wertevorschläge: 0.0, 0.78, 6.28318
Defaultwert: 0.0
Der Parameter legt den Endwinkel des Kreis- bzw. Ellipsenbogens fest. Für eine Ellipse wird der Endwinkel relativ zur positiven großen Halbachse gemessen und bezieht sich auf den kleinsten die Ellipse umgebenden Kreis. Der tatsächliche Endpunkt der Ellipse ergibt sich aus dem Schnittpunkt der Ellipse mit der Orthogonalprojektion des entsprechenden Kreispunktes auf die große Halbachse. Um einen geschlossenen Kreis bzw. eine geschlossene Ellipse zu erhalten, müssen der Wert des Parameters 'start_phi' auf 0 und der Wert des Parameters 'end_phi' auf gesetzt sein (bei positivem Umlaufsinn). Die Eingabewerte werden automatisch auf das Intervall abgebildet.
Wertevorschläge: 0.0, 0.78, 6.28318
Defaultwert: 6.28318
Der Parameter legt die Richtung des Kreis- bzw. Ellipsenbogens fest. Wird der Wert auf 'positive' gesetzt, ist der Bogen zwischen 'start_phi' und 'end_phi' im mathematisch positiven Sinn (gegen den Uhrzeigersinn) definiert. Wird der Wert auf 'negative' gesetzt, ist der Bogen zwischen 'start_phi' und 'end_phi' im mathematisch negativen Sinn (im Uhrzeigersinn) definiert.
Wertevorschläge: 'positive', 'negative'
Defaultwert: 'positive'
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.
MetrologyHandle (input_control, Zustand wird modifiziert) metrology_model → (handle)
Handle des Messmodells.
Shape (input_control) attribute.name(-array) → (string)
Typ des zu erstellenden Metrology-Messobjekts.
Defaultwert: 'circle'
Werteliste: 'circle', 'ellipse', 'line', 'rectangle2'
ShapeParam (input_control) attribute.value-array → (real / integer)
Parameter des zu erstellenden Metrology-Messobjekts.
MeasureLength1 (input_control) number → (real / integer)
Halbe Länge der Messregionen senkrecht zum Rand.
Defaultwert: 20.0
Wertevorschläge: 10.0, 20.0, 30.0
Typischer Wertebereich: 1.0
≤
MeasureLength1
≤
511.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
MeasureLength2 (input_control) number → (real / integer)
Halbe Länge der Messregionen tangential zum Rand.
Defaultwert: 5.0
Wertevorschläge: 3.0, 5.0, 10.0
Typischer Wertebereich: 1.0
≤
MeasureLength2
≤
511.0 (lin)
Minimale Schrittweite: 1.0
Empfohlene Schrittweite: 10.0
MeasureSigma (input_control) number → (real / integer)
Sigma der Gaußfunktion für die Glättung.
Defaultwert: 1.0
Wertevorschläge: 0.4, 0.6, 0.8, 1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 7.0, 10.0
Typischer Wertebereich: 0.4
≤
MeasureSigma
≤
100 (lin)
Minimale Schrittweite: 0.01
Empfohlene Schrittweite: 0.1
Restriktion: 0.4 <= MeasureSigma && MeasureSigma <= 100
MeasureThreshold (input_control) number → (real / integer)
Minimale Amplitude einer Kante.
Defaultwert: 30.0
Wertevorschläge: 5.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 90.0, 110.0
Typischer Wertebereich: 1
≤
MeasureThreshold
≤
255 (lin)
Minimale Schrittweite: 0.5
Empfohlene Schrittweite: 2
GenParamName (input_control) attribute.name-array → (string)
Namen der generischen Parameter.
Defaultwert: []
Werteliste: 'distance_threshold', 'end_phi', 'instances_outside_measure_regions', 'max_num_iterations', 'measure_distance', 'measure_interpolation', 'measure_select', 'measure_transition', 'min_score', 'num_instances', 'num_measures', 'point_order', 'rand_seed', 'start_phi'
GenParamValue (input_control) attribute.value-array → (real / integer / string)
Werte der generischen Parameter.
Defaultwert: []
Wertevorschläge: 1, 2, 3, 4, 5, 10, 20, 'all', 'true', 'false', 'first', 'last', 'positive', 'negative', 'uniform', 'nearest_neighbor', 'bilinear', 'bicubic'
Index (output_control) integer → (integer)
Index des erstellten Metrology-Messobjekts.
create_metrology_model (MetrologyHandle)
read_image (Image, 'fabrik')
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
LinePar := [45,360,415,360]
RectPar1 := [270,232,rad(0),30,25]
RectPar2 := [360,230,rad(0),30,25]
LinePar := [45,360,415,360]
RectPar3 := [245,320,rad(-90),70,35]
* Add two rectangles
add_metrology_object_generic (MetrologyHandle, 'rectangle2', [RectPar1,RectPar2], \
20, 5, 1, 30, [], [], Indices)
* Add a rectangle and a line
add_metrology_object_generic (MetrologyHandle, ['rectangle2','line'], \
[RectPar3,LinePar], 20, 5, 1, 30, [], [], Index)
get_metrology_object_model_contour (Contour, MetrologyHandle, 'all', 1.5)
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all', \
'all', 1.5)
Sind die Parameterwerte korrekt, dann liefert
add_metrology_object_generic den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
set_metrology_model_image_size,
set_metrology_model_param
align_metrology_model,
apply_metrology_model,
set_metrology_model_param
get_metrology_object_model_contour
2D Metrology