determine_shape_model_paramsT_determine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParams (Operator)

Name

determine_shape_model_paramsT_determine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParams — Berechnung der Parameter eines Formmodells.

Signatur

determine_shape_model_params(Template : : NumLevels, AngleStart, AngleExtent, ScaleMin, ScaleMax, Optimization, Metric, Contrast, MinContrast, Parameters : ParameterName, ParameterValue)

Herror T_determine_shape_model_params(const Hobject Template, const Htuple NumLevels, const Htuple AngleStart, const Htuple AngleExtent, const Htuple ScaleMin, const Htuple ScaleMax, const Htuple Optimization, const Htuple Metric, const Htuple Contrast, const Htuple MinContrast, const Htuple Parameters, Htuple* ParameterName, Htuple* ParameterValue)

void DetermineShapeModelParams(const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& ScaleMin, const HTuple& ScaleMax, const HTuple& Optimization, const HTuple& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& Parameters, HTuple* ParameterName, HTuple* ParameterValue)

HTuple HImage::DetermineShapeModelParams(const HTuple& NumLevels, double AngleStart, double AngleExtent, const HTuple& ScaleMin, const HTuple& ScaleMax, const HString& Optimization, const HString& Metric, const HTuple& Contrast, const HTuple& MinContrast, const HTuple& Parameters, HTuple* ParameterValue) const

HTuple HImage::DetermineShapeModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const HString& Optimization, const HString& Metric, Hlong Contrast, Hlong MinContrast, const HString& Parameters, HTuple* ParameterValue) const

HTuple HImage::DetermineShapeModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const char* Optimization, const char* Metric, Hlong Contrast, Hlong MinContrast, const char* Parameters, HTuple* ParameterValue) const

HTuple HImage::DetermineShapeModelParams(Hlong NumLevels, double AngleStart, double AngleExtent, double ScaleMin, double ScaleMax, const wchar_t* Optimization, const wchar_t* Metric, Hlong Contrast, Hlong MinContrast, const wchar_t* Parameters, HTuple* ParameterValue) const   (Nur Windows)

static void HOperatorSet.DetermineShapeModelParams(HObject template, HTuple numLevels, HTuple angleStart, HTuple angleExtent, HTuple scaleMin, HTuple scaleMax, HTuple optimization, HTuple metric, HTuple contrast, HTuple minContrast, HTuple parameters, out HTuple parameterName, out HTuple parameterValue)

HTuple HImage.DetermineShapeModelParams(HTuple numLevels, double angleStart, double angleExtent, HTuple scaleMin, HTuple scaleMax, string optimization, string metric, HTuple contrast, HTuple minContrast, HTuple parameters, out HTuple parameterValue)

HTuple HImage.DetermineShapeModelParams(int numLevels, double angleStart, double angleExtent, double scaleMin, double scaleMax, string optimization, string metric, int contrast, int minContrast, string parameters, out HTuple parameterValue)

Beschreibung

determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams berechnet bestimmte Parameter eines Formmodells automatisch aus dem Modellbild TemplateTemplateTemplateTemplatetemplate. Die zu berechnenden Parameter werden in ParametersParametersParametersParametersparameters angegeben. Mit determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams lassen sich dieselben Parameter automatisch bestimmen, die auch mit create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel und create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel durch Setzen des jeweiligen Parameters auf 'auto'"auto""auto""auto""auto" automatisch bestimmt werden können: die Anzahl der Pyramidenebenen des Modells (ParametersParametersParametersParametersparameters = 'num_levels'"num_levels""num_levels""num_levels""num_levels"), die Winkelschrittweite (ParametersParametersParametersParametersparameters = 'angle_step'"angle_step""angle_step""angle_step""angle_step"), die Skalierungsschrittweite (ParametersParametersParametersParametersparameters = 'scale_step'"scale_step""scale_step""scale_step""scale_step" für isotrope Skalierungen bzw. 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step" und/oder 'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step" für anisotrope Skalierungen), die Art der Optimierung (ParametersParametersParametersParametersparameters = 'optimization'"optimization""optimization""optimization""optimization"), der Schwellwert (ParametersParametersParametersParametersparameters = 'contrast'"contrast""contrast""contrast""contrast") bzw. die Hystereseschwellwerte (ParametersParametersParametersParametersparameters = 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst") für den Kontrast, die Mindestgröße der Objektteile (ParametersParametersParametersParametersparameters = 'min_size'"min_size""min_size""min_size""min_size") und der minimale Kontrast (ParametersParametersParametersParametersparameters = 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast"). Es kann eine beliebige Kombination dieser Parameter bestimmt werden, indem ein Tupel von Werten in ParametersParametersParametersParametersparameters übergeben wird. Falls alle Parameter automatisch bestimmt werden sollen, kann zur Vereinfachung auch der Wert 'all'"all""all""all""all" übergeben werden. In diesem Fall werden beide Hystereseschwellwerte bestimmt, d.h. der Operator verhält sich so, als ob 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst" anstatt 'contrast'"contrast""contrast""contrast""contrast" übergeben worden wäre.

determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams kann hauptsächlich dazu verwendet werden, die obigen Parameter automatisch zu bestimmen, bevor das Modell erzeugt wird. Dies ist vor allem in interaktiven Systemen nützlich, in denen dem Benutzer ein Vorschlag für diese Werte präsentiert wird, die der Benutzer aber modifizieren kann.

Die berechneten Parameter werden in ParameterNameParameterNameParameterNameParameterNameparameterName und ParameterValueParameterValueParameterValueParameterValueparameterValue als Name des Parameters und als jeweiliger Wert zurückgeliefert. Dabei haben die Parameter in ParameterNameParameterNameParameterNameParameterNameparameterName dieselben Namen wie in ParametersParametersParametersParametersparameters, wobei natürlich der Wert 'all'"all""all""all""all" durch die entsprechenden Parameternamen ersetzt wird. Eine Ausnahme besteht jedoch für den Parameter 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst", für den zwei Werte 'contrast_low'"contrast_low""contrast_low""contrast_low""contrast_low" und 'contrast_high'"contrast_high""contrast_high""contrast_high""contrast_high" zurückgegeben werden.

Die restlichen Parameter (NumLevelsNumLevelsNumLevelsNumLevelsnumLevels, AngleStartAngleStartAngleStartAngleStartangleStart, AngleExtentAngleExtentAngleExtentAngleExtentangleExtent, ScaleMinScaleMinScaleMinScaleMinscaleMin, ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax, OptimizationOptimizationOptimizationOptimizationoptimization, MetricMetricMetricMetricmetric, ContrastContrastContrastContrastcontrast und MinContrastMinContrastMinContrastMinContrastminContrast) haben dieselbe Bedeutung wie bei create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel und create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel. Die Beschreibung der Parameter kann dort nachgelesen werden. Diese Parameter werden von determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams dazu verwendet, die zu bestimmenden Parameter auf dieselbe Art zu berechnen wie in create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel und create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel. Es ist zu beachten, dass in ScaleMinScaleMinScaleMinScaleMinscaleMin und ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax jeweils ein Wert übergeben werden muss, falls die Parameter eines Formmodells mit isotroper Skalierung bestimmt werden sollen, falls also ParametersParametersParametersParametersparameters 'scale_step'"scale_step""scale_step""scale_step""scale_step" explizit oder implizit über 'all'"all""all""all""all" enthält. Falls die Parameter eines Formmodells mit anisotroper Skalierung bestimmt werden sollen, d.h. falls ParametersParametersParametersParametersparameters 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step" oder 'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step" explizit oder implizit enthält, müssen in ScaleMinScaleMinScaleMinScaleMinscaleMin und ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax jeweils zwei Werte angegeben werden. Dabei bezieht sich der jeweils erste Parameter auf die Skalierung in Zeilenrichtung, der jeweils zweite Parameter auf die Skalierung in Spaltenrichtung.

Zu beachten ist, dass determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams einige Parameter enthält, die auch automatisch bestimmt werden können (NumLevelsNumLevelsNumLevelsNumLevelsnumLevels, OptimizationOptimizationOptimizationOptimizationoptimization, ContrastContrastContrastContrastcontrast, MinContrastMinContrastMinContrastMinContrastminContrast). Falls diese Parameter nicht automatisch bestimmt werden sollen, d.h. ihr Name wird nicht in ParametersParametersParametersParametersparameters übergeben, müssen für die entsprechenden Parameter zulässige Werte übergeben werden. Insbesondere dürfen die entsprechenden Parameter nicht auf 'auto'"auto""auto""auto""auto" gesetzt sein. Sollen diese Parameter dagegen automatisch bestimmt werden, so werden die in den entsprechenden Parametern übergebenen Werte wie folgt behandelt: Sollen die Art der Optimierung oder die (Hysterese)-Schwellwerte für den Kontrast automatisch bestimmt werden, d.h. ParametersParametersParametersParametersparameters enthält die Werte 'optimization'"optimization""optimization""optimization""optimization" oder 'contrast'"contrast""contrast""contrast""contrast" ('contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst"), dann werden die in OptimizationOptimizationOptimizationOptimizationoptimization bzw. ContrastContrastContrastContrastcontrast übergebenen Werte ignoriert. Sollen dagegen die Anzahl an Pyramidenebenen oder der minimale Kontrast automatisch bestimmt werden, d.h. ParametersParametersParametersParametersparameters enthält die Werte 'num_levels'"num_levels""num_levels""num_levels""num_levels" oder 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast", dann kann HALCON zwar geeignete Werte ermitteln, zusätzlich besteht jedoch die Möglichkeit, eine obere bzw. untere Grenze anzugeben:

Falls die maximale Anzahl der Pyramidenstufen vorgegeben werden soll, kann NumLevelsNumLevelsNumLevelsNumLevelsnumLevels auf den betreffenden Wert gesetzt werden. Falls in diesem Fall ParametersParametersParametersParametersparameters den Wert 'num_levels'"num_levels""num_levels""num_levels""num_levels" enthält, kann der berechnete Wert der Anzahl der Pyramidenebenen höchstens NumLevelsNumLevelsNumLevelsNumLevelsnumLevels betragen. Falls NumLevelsNumLevelsNumLevelsNumLevelsnumLevels = 'auto'"auto""auto""auto""auto" (oder 0 für Rückwärtskompatibilität) gesetzt wird, wird die Anzahl der Pyramidenebenen ohne Beschränkung so hoch wie möglich bestimmt.

Falls der minimale Kontrast vorgegeben werden soll, kann MinContrastMinContrastMinContrastMinContrastminContrast auf den betreffenden Wert gesetzt werden. Falls in diesem Fall ParametersParametersParametersParametersparameters den Wert 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast" enthält, beträgt der berechnete Wert des minimalen Kontrastes mindestens MinContrastMinContrastMinContrastMinContrastminContrast. Falls MinContrastMinContrastMinContrastMinContrastminContrast = 'auto'"auto""auto""auto""auto" gesetzt wird, wird der minimale Kontrast ohne Beschränkung bestimmt.

Achtung

In manchen Fällen ist der Wert für die maximale Anzahl an Pyramidenebenen, der von determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams zurückgegebenen wird, höher als der tatsächlich im Formmodell verwendete Wert. Letzterer kann mit get_shape_model_paramsget_shape_model_paramsGetShapeModelParamsGetShapeModelParamsGetShapeModelParams nach der Modellgenerierung abgefragt werden. Dieser Fall kann auftreten, wenn das Modell mit create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel oder create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel generiert wird und ScaleMin, ScaleRMin oder ScaleCMin auf einen Wert unter 1.0 gesetzt wird.

Ausführungsinformationen

Parameter

TemplateTemplateTemplateTemplatetemplate (input_object)  (multichannel-)image objectHImageHImageHobject (byte / uint2)

Eingabebild, dessen Definitionsbereich für das Modell verwendet wird.

NumLevelsNumLevelsNumLevelsNumLevelsnumLevels (input_control)  integer HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Maximale Anzahl von Pyramidenebenen.

Defaultwert: 'auto' "auto" "auto" "auto" "auto"

Werteliste: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto'"auto""auto""auto""auto"

AngleStartAngleStartAngleStartAngleStartangleStart (input_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Rotation des Modells.

Defaultwert: -0.39

Wertevorschläge: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0

AngleExtentAngleExtentAngleExtentAngleExtentangleExtent (input_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Ausdehnung des Winkelbereichs.

Defaultwert: 0.79

Wertevorschläge: 6.29, 3.14, 1.57, 0.79, 0.39

Restriktion: AngleExtent >= 0

ScaleMinScaleMinScaleMinScaleMinscaleMin (input_control)  number(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Kleinste auftretende Skalierung des Modells.

Defaultwert: 0.9

Wertevorschläge: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0

Restriktion: ScaleMin > 0

ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax (input_control)  number(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Größte auftretende Skalierung des Modells.

Defaultwert: 1.1

Wertevorschläge: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5

Restriktion: ScaleMax >= ScaleMin

OptimizationOptimizationOptimizationOptimizationoptimization (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Art der Optimierung.

Defaultwert: 'auto' "auto" "auto" "auto" "auto"

Werteliste: 'auto'"auto""auto""auto""auto", 'none'"none""none""none""none", 'point_reduction_high'"point_reduction_high""point_reduction_high""point_reduction_high""point_reduction_high", 'point_reduction_low'"point_reduction_low""point_reduction_low""point_reduction_low""point_reduction_low", 'point_reduction_medium'"point_reduction_medium""point_reduction_medium""point_reduction_medium""point_reduction_medium"

MetricMetricMetricMetricmetric (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Art der zum Matchen verwendeten Metrik.

Defaultwert: 'use_polarity' "use_polarity" "use_polarity" "use_polarity" "use_polarity"

Werteliste: 'ignore_color_polarity'"ignore_color_polarity""ignore_color_polarity""ignore_color_polarity""ignore_color_polarity", 'ignore_global_polarity'"ignore_global_polarity""ignore_global_polarity""ignore_global_polarity""ignore_global_polarity", 'ignore_local_polarity'"ignore_local_polarity""ignore_local_polarity""ignore_local_polarity""ignore_local_polarity", 'use_polarity'"use_polarity""use_polarity""use_polarity""use_polarity"

ContrastContrastContrastContrastcontrast (input_control)  number(-array) HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Schwellwert bzw. Hystereseschwellwerte für den Kontrast des Objektes im Musterbild und optional Mindestgröße der Objektteile.

Defaultwert: 'auto' "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto", 'auto_contrast'"auto_contrast""auto_contrast""auto_contrast""auto_contrast", 'auto_contrast_hyst'"auto_contrast_hyst""auto_contrast_hyst""auto_contrast_hyst""auto_contrast_hyst", 'auto_min_size'"auto_min_size""auto_min_size""auto_min_size""auto_min_size", 10, 20, 30, 40, 60, 80, 100, 120, 140, 160

MinContrastMinContrastMinContrastMinContrastminContrast (input_control)  integer HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Minimaler Kontrast des Objektes in den Suchbildern.

Defaultwert: 'auto' "auto" "auto" "auto" "auto"

Wertevorschläge: 'auto'"auto""auto""auto""auto", 1, 2, 3, 5, 7, 10, 20, 30, 40

Restriktion: MinContrast < Contrast

ParametersParametersParametersParametersparameters (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Zu berechnende Parameter.

Defaultwert: 'all' "all" "all" "all" "all"

Werteliste: 'all'"all""all""all""all", 'angle_step'"angle_step""angle_step""angle_step""angle_step", 'contrast'"contrast""contrast""contrast""contrast", 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst", 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast", 'min_size'"min_size""min_size""min_size""min_size", 'num_levels'"num_levels""num_levels""num_levels""num_levels", 'optimization'"optimization""optimization""optimization""optimization", 'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step", 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step", 'scale_step'"scale_step""scale_step""scale_step""scale_step"

ParameterNameParameterNameParameterNameParameterNameparameterName (output_control)  string-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Name des berechneten Parameters.

ParameterValueParameterValueParameterValueParameterValueparameterValue (output_control)  number-array HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Wert des berechneten Parameters.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt. Wenn die Parameter NumLevelsNumLevelsNumLevelsNumLevelsnumLevels und ContrastContrastContrastContrastcontrast so gewählt worden sind, dass das Modell zu wenige Punkte besitzt, oder nicht genügend signifikante Mermale im Eingabebild vorhanden sind, wird die Fehlermeldung 8510 zurückgeliefert.

Vorgänger

draw_regiondraw_regionDrawRegionDrawRegionDrawRegion, reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain, thresholdthresholdThresholdThresholdThreshold

Nachfolger

create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel, create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel

Siehe auch

find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModel, find_scaled_shape_modelfind_scaled_shape_modelFindScaledShapeModelFindScaledShapeModelFindScaledShapeModel, find_aniso_shape_modelfind_aniso_shape_modelFindAnisoShapeModelFindAnisoShapeModelFindAnisoShapeModel, find_shape_modelsfind_shape_modelsFindShapeModelsFindShapeModelsFindShapeModels, find_scaled_shape_modelsfind_scaled_shape_modelsFindScaledShapeModelsFindScaledShapeModelsFindScaledShapeModels, find_aniso_shape_modelsfind_aniso_shape_modelsFindAnisoShapeModelsFindAnisoShapeModelsFindAnisoShapeModels

Modul

Matching