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