add_metrology_object_circle_measureT_add_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure (Operator)

Name

add_metrology_object_circle_measureT_add_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure — Hinzufügen eines Kreises oder Kreisbogens zu einem Messmodell.

Signatur

add_metrology_object_circle_measure( : : MetrologyHandle, Row, Column, Radius, MeasureLength1, MeasureLength2, MeasureSigma, MeasureThreshold, GenParamName, GenParamValue : Index)

Herror T_add_metrology_object_circle_measure(const Htuple MetrologyHandle, const Htuple Row, const Htuple Column, const Htuple Radius, const Htuple MeasureLength1, const Htuple MeasureLength2, const Htuple MeasureSigma, const Htuple MeasureThreshold, const Htuple GenParamName, const Htuple GenParamValue, Htuple* Index)

void AddMetrologyObjectCircleMeasure(const HTuple& MetrologyHandle, const HTuple& Row, const HTuple& Column, const HTuple& Radius, const HTuple& MeasureLength1, const HTuple& MeasureLength2, const HTuple& MeasureSigma, const HTuple& MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* Index)

Hlong HMetrologyModel::AddMetrologyObjectCircleMeasure(const HTuple& Row, const HTuple& Column, const HTuple& Radius, const HTuple& MeasureLength1, const HTuple& MeasureLength2, const HTuple& MeasureSigma, const HTuple& MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const

Hlong HMetrologyModel::AddMetrologyObjectCircleMeasure(double Row, double Column, double Radius, double MeasureLength1, double MeasureLength2, double MeasureSigma, double MeasureThreshold, const HTuple& GenParamName, const HTuple& GenParamValue) const

static void HOperatorSet.AddMetrologyObjectCircleMeasure(HTuple metrologyHandle, HTuple row, HTuple column, HTuple radius, HTuple measureLength1, HTuple measureLength2, HTuple measureSigma, HTuple measureThreshold, HTuple genParamName, HTuple genParamValue, out HTuple index)

int HMetrologyModel.AddMetrologyObjectCircleMeasure(HTuple row, HTuple column, HTuple radius, HTuple measureLength1, HTuple measureLength2, HTuple measureSigma, HTuple measureThreshold, HTuple genParamName, HTuple genParamValue)

int HMetrologyModel.AddMetrologyObjectCircleMeasure(double row, double column, double radius, double measureLength1, double measureLength2, double measureSigma, double measureThreshold, HTuple genParamName, HTuple genParamValue)

Beschreibung

add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure fügt ein Metrology-Messobjekt vom Typ Kreis oder Kreisbogen zu einem Messmodell hinzu und bereitet die rechteckigen Messregionen vor. Das Handle des Messmodells muss in MetrologyHandleMetrologyHandleMetrologyHandleMetrologyHandlemetrologyHandle übergeben werden.

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

Die genäherte geometrische Form des Metrology-Messobjekts vom Typ Kreis wird durch seinen Mittelpunkt (RowRowRowRowrow, ColumnColumnColumnColumncolumn) und den RadiusRadiusRadiusRadiusradius beschrieben. Die Messregionen liegen senkrecht zum Kreisrand. Die halben Kantenlängen der Messregionen senkrecht und tangential zum Kreis werden jeweils in MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1 und in MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2 gesetzt. Die Mittelpunkte der Messregionen liegen auf dem Rand des Kreises. Der Parameter MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigma legt eine Standardabweichung für die Glättung der Grauwerte im Bild durch den Operator apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel fest. Auffällige Kanten können mit dem Parameter MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThreshold, der einen Schwellwert für die Kantenamplitude, d.h. den Absolutbetrag der ersten Ableitung, angibt, selektiert werden. Der Operator add_metrology_object_circle_measureadd_metrology_object_circle_measureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasureAddMetrologyObjectCircleMeasure gibt den Index des hinzugefügten Metrology-Messobjekts in dem Parameter IndexIndexIndexIndexindex zurück.

Desweiteren können in GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue generische Parameter angepasst werden. Die folgenden generischen Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamName und die dazugehörigen Werte GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue zur Festlegung eines Kreisbogens sind verfügbar:

'start_phi'"start_phi""start_phi""start_phi""start_phi":

Der Parameter legt den Anfangswinkel des Kreisbogens fest. Um einen geschlossenen Kreis zu erhalten, müssen der Wert des Parameters 'start_phi'"start_phi""start_phi""start_phi""start_phi" auf 0 und der Wert des Parameters 'end_phi'"end_phi""end_phi""end_phi""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

'end_phi'"end_phi""end_phi""end_phi""end_phi":

Der Parameter legt den Endwinkel des Kreisbogens fest. Um einen geschlossenen Kreis zu erhalten, müssen der Wert des Parameters 'start_phi'"start_phi""start_phi""start_phi""start_phi" auf 0 und der Wert des Parameters 'end_phi'"end_phi""end_phi""end_phi""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

'point_order'"point_order""point_order""point_order""point_order":

Der Parameter legt die Richtung des Kreisbogens fest. Wird der Wert auf 'positive'"positive""positive""positive""positive" gesetzt, ist der Kreisbogen zwischen 'start_phi'"start_phi""start_phi""start_phi""start_phi" und 'end_phi'"end_phi""end_phi""end_phi""end_phi" im mathematisch positiven Sinn (gegen den Uhrzeigersinn) definiert. Wird der Wert auf 'negative'"negative""negative""negative""negative" gesetzt, ist der Kreisbogen zwischen 'start_phi'"start_phi""start_phi""start_phi""start_phi" und 'end_phi'"end_phi""end_phi""end_phi""end_phi" im mathematisch negativen Sinn (im Uhrzeigersinn) definiert.

Wertevorschläge: 'positive'"positive""positive""positive""positive", 'negative'"negative""negative""negative""negative"

Defaultwert: 'positive'"positive""positive""positive""positive"

Weitere generische Parameter sind alle generischen Parameter, die im Operator set_metrology_object_paramset_metrology_object_paramSetMetrologyObjectParamSetMetrologyObjectParamSetMetrologyObjectParam zur Verfügung stehen. In den meisten Fällen reichen die Standardwerte aus, so dass keine Anpassung nötig ist.

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

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

Handle des Messmodells.

RowRowRowRowrow (input_control)  circle.center.y(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des Mittelpunkts des Kreises oder des Kreisbogens.

ColumnColumnColumnColumncolumn (input_control)  circle.center.x(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des Mittelpunkts des Kreises oder des Kreisbogens.

RadiusRadiusRadiusRadiusradius (input_control)  circle.radius(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Radius des Kreises oder Kreisbogens.

MeasureLength1MeasureLength1MeasureLength1MeasureLength1measureLength1 (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Halbe Länge der Messregionen senkrecht zum Rand.

Defaultwert: 20.0

Wertevorschläge: 10.0, 20.0, 30.0

Typischer Wertebereich: 1.0 ≤ MeasureLength1 MeasureLength1 MeasureLength1 MeasureLength1 measureLength1

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

Restriktion: MeasureLength1 < Radius

MeasureLength2MeasureLength2MeasureLength2MeasureLength2measureLength2 (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Halbe Länge der Messregionen tangential zum Rand.

Defaultwert: 5.0

Wertevorschläge: 3.0, 5.0, 10.0

Typischer Wertebereich: 1.0 ≤ MeasureLength2 MeasureLength2 MeasureLength2 MeasureLength2 measureLength2

Minimale Schrittweite: 1.0

Empfohlene Schrittweite: 10.0

MeasureSigmaMeasureSigmaMeasureSigmaMeasureSigmameasureSigma (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

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 MeasureSigma MeasureSigma MeasureSigma measureSigma

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: 0.4 <= MeasureSigma && MeasureSigma <= 100

MeasureThresholdMeasureThresholdMeasureThresholdMeasureThresholdmeasureThreshold (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

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 MeasureThreshold MeasureThreshold MeasureThreshold measureThreshold ≤ 255 (lin)

Minimale Schrittweite: 0.5

Empfohlene Schrittweite: 2

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter.

Defaultwert: []

Werteliste: 'distance_threshold'"distance_threshold""distance_threshold""distance_threshold""distance_threshold", 'end_phi'"end_phi""end_phi""end_phi""end_phi", 'instances_outside_measure_regions'"instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions""instances_outside_measure_regions", 'max_num_iterations'"max_num_iterations""max_num_iterations""max_num_iterations""max_num_iterations", 'measure_distance'"measure_distance""measure_distance""measure_distance""measure_distance", 'measure_interpolation'"measure_interpolation""measure_interpolation""measure_interpolation""measure_interpolation", 'measure_select'"measure_select""measure_select""measure_select""measure_select", 'measure_transition'"measure_transition""measure_transition""measure_transition""measure_transition", 'min_score'"min_score""min_score""min_score""min_score", 'num_instances'"num_instances""num_instances""num_instances""num_instances", 'num_measures'"num_measures""num_measures""num_measures""num_measures", 'point_order'"point_order""point_order""point_order""point_order", 'rand_seed'"rand_seed""rand_seed""rand_seed""rand_seed", 'start_phi'"start_phi""start_phi""start_phi""start_phi"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value-array HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Werte der generischen Parameter.

Defaultwert: []

Wertevorschläge: 1, 2, 3, 4, 5, 10, 20, 'all'"all""all""all""all", 'true'"true""true""true""true", 'false'"false""false""false""false", 'first'"first""first""first""first", 'last'"last""last""last""last", 'positive'"positive""positive""positive""positive", 'negative'"negative""negative""negative""negative", 'uniform'"uniform""uniform""uniform""uniform", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor", 'bilinear'"bilinear""bilinear""bilinear""bilinear", 'bicubic'"bicubic""bicubic""bicubic""bicubic"

IndexIndexIndexIndexindex (output_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Index des erstellten Metrology-Messobjekts.

Beispiel (HDevelop)

read_image (Image, 'rings_and_nuts')
create_metrology_model (MetrologyHandle)
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)  
add_metrology_object_circle_measure (MetrologyHandle, 120, 130, 35, 10, 2, \
                              1, 30, ['measure_distance'], [40], Index)
apply_metrology_model (Image, MetrologyHandle)
get_metrology_object_result (MetrologyHandle, Index, 'all', 'result_type', \
                      'all_param', Circle)
get_metrology_object_result_contour (Contour, MetrologyHandle, Index, \
                                    'all', 1.5)

Ergebnis

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

Vorgänger

set_metrology_model_image_sizeset_metrology_model_image_sizeSetMetrologyModelImageSizeSetMetrologyModelImageSizeSetMetrologyModelImageSize

Nachfolger

align_metrology_modelalign_metrology_modelAlignMetrologyModelAlignMetrologyModelAlignMetrologyModel, apply_metrology_modelapply_metrology_modelApplyMetrologyModelApplyMetrologyModelApplyMetrologyModel

Alternativen

add_metrology_object_genericadd_metrology_object_genericAddMetrologyObjectGenericAddMetrologyObjectGenericAddMetrologyObjectGeneric

Siehe auch

get_metrology_object_model_contourget_metrology_object_model_contourGetMetrologyObjectModelContourGetMetrologyObjectModelContourGetMetrologyObjectModelContour, set_metrology_model_paramset_metrology_model_paramSetMetrologyModelParamSetMetrologyModelParamSetMetrologyModelParam, 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

Modul

2D Metrology