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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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