determine_deformable_model_paramsT_determine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParams (Operator)

Name

determine_deformable_model_paramsT_determine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParams — Berechnung der Parameter eines Formmodells.

Signatur

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

Herror T_determine_deformable_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 GenParamName, const Htuple GenParamValue, const Htuple Parameters, Htuple* ParameterName, Htuple* ParameterValue)

void DetermineDeformableModelParams(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& GenParamName, const HTuple& GenParamValue, const HTuple& Parameters, HTuple* ParameterName, HTuple* ParameterValue)

HTuple HImage::DetermineDeformableModelParams(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& GenParamName, const HTuple& GenParamValue, const HTuple& Parameters, HTuple* ParameterValue) const

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

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

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

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

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

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

Beschreibung

determine_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams berechnet bestimmte Parameter eines deformierbaren Formmodells automatisch aus dem Modellbild TemplateTemplateTemplateTemplatetemplate. Die zu berechnenden Parameter werden in ParametersParametersParametersParametersparameters angegeben. Mit determine_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams lassen sich dieselben Parameter automatisch bestimmen, die auch mit create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel 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_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams 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, der Benutzer diese aber modifizieren kann.

Die berechneten Parameter werden in ParameterNameParameterNameParameterNameParameterNameparameterName und ParameterValueParameterValueParameterValueParameterValueparameterValue als Name der Parameter und den jeweiligen Werten 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_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel und find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel. Die Beschreibung der Parameter kann dort nachgelesen werden. Diese Parameter werden von determine_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams dazu verwendet, die zu bestimmenden Parameter auf dieselbe Art zu berechnen wie in create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel. 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_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams 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 ParameterNameParameterNameParameterNameParameterNameparameterName ü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. ParameterNameParameterNameParameterNameParameterNameparameterName 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. ParameterNameParameterNameParameterNameParameterNameparameterName 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.

Wenn der Benutzer ein kalibriertes, deformierbares Modell mit create_planar_calib_deformable_modelcreate_planar_calib_deformable_modelCreatePlanarCalibDeformableModelCreatePlanarCalibDeformableModelCreatePlanarCalibDeformableModel erzeugen möchte, benötigt er die internen Kameraparameter für die korrekte Schätzung von ParameterValueParameterValueParameterValueParameterValueparameterValue. Die internen Parameter der Kamera können übergeben werden, indem GenParamNameGenParamNameGenParamNameGenParamNamegenParamName auf 'cam_param'"cam_param""cam_param""cam_param""cam_param" gesetzt wird und in GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue das Tupel, das die Kamera Parameter enthält, übergeben 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.28, 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)  number 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

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

Namen der allgemeinen Parameter.

Defaultwert: []

Werteliste: 'cam_param'"cam_param""cam_param""cam_param""cam_param"

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

Werte der allgemeinen Parameter.

Defaultwert: []

Werteliste: []

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_deformable_model_paramsdetermine_deformable_model_paramsDetermineDeformableModelParamsDetermineDeformableModelParamsDetermineDeformableModelParams 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 Merkmale im Eingabebild vorhanden sind, wird die Fehlermeldung 8510 zurückgeliefert.

Nachfolger

create_planar_uncalib_deformable_modelcreate_planar_uncalib_deformable_modelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModelCreatePlanarUncalibDeformableModel, create_planar_calib_deformable_modelcreate_planar_calib_deformable_modelCreatePlanarCalibDeformableModelCreatePlanarCalibDeformableModelCreatePlanarCalibDeformableModel, create_local_deformable_modelcreate_local_deformable_modelCreateLocalDeformableModelCreateLocalDeformableModelCreateLocalDeformableModel

Siehe auch

find_planar_uncalib_deformable_modelfind_planar_uncalib_deformable_modelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModelFindPlanarUncalibDeformableModel, find_planar_calib_deformable_modelfind_planar_calib_deformable_modelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModelFindPlanarCalibDeformableModel

Modul

Matching