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
- 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.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