determine_shape_model_paramsT_determine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParams (Operator)
Name
determine_shape_model_paramsT_determine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParams
— Determine the parameters of a shape model.
Signature
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
(Windows only)
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)
Description
determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
determines certain parameters
of a shape model automatically from the model image
TemplateTemplateTemplateTemplatetemplate
. The parameters to be determined can be specified
with ParametersParametersParametersParametersparameters
. determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
can
be used to determine the same parameters that are determined
automatically when the respective parameter in
create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel
, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel
, or
create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel
is set to 'auto'"auto""auto""auto""auto": the
number of pyramid levels (ParametersParametersParametersParametersparameters
=
'num_levels'"num_levels""num_levels""num_levels""num_levels"), the angle step length (ParametersParametersParametersParametersparameters
= 'angle_step'"angle_step""angle_step""angle_step""angle_step"), the scale step length
(ParametersParametersParametersParametersparameters
= 'scale_step'"scale_step""scale_step""scale_step""scale_step" for isotropic scaling
and 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step" and/or 'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step" for
anisotropic scaling), the kind of optimization (ParametersParametersParametersParametersparameters
= 'optimization'"optimization""optimization""optimization""optimization"), the threshold (ParametersParametersParametersParametersparameters
=
'contrast'"contrast""contrast""contrast""contrast") or the hysteresis thresholds
(ParametersParametersParametersParametersparameters
= 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst") for the contrast,
the minimum size of the object parts (ParametersParametersParametersParametersparameters
=
'min_size'"min_size""min_size""min_size""min_size"), and the minimum contrast (ParametersParametersParametersParametersparameters
= 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast"). By passing a tuple of the above
values in ParametersParametersParametersParametersparameters
, an arbitrary combination of these
parameters can be determined. If all of the above parameters should
be determined, the value 'all'"all""all""all""all" can be passed. In this case
both hysteresis thresholds are determined, i.e., the operator
behaves like passing 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst" instead of
'contrast'"contrast""contrast""contrast""contrast".
determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
is mainly useful to determine
the above parameters before creating the model, e.g., in an
interactive system, which makes suggestions for these parameters to
the user, but enables the user to modify the suggested values.
The automatically determined parameters are returned as a name-value
pair in ParameterNameParameterNameParameterNameParameterNameparameterName
and ParameterValueParameterValueParameterValueParameterValueparameterValue
. The
parameter names in ParameterNameParameterNameParameterNameParameterNameparameterName
are identical to the names
in ParametersParametersParametersParametersparameters
, where, of course, the value 'all'"all""all""all""all"
is replaced by the actual parameter names. An exception is the
parameter 'contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst", for which the two values
'contrast_low'"contrast_low""contrast_low""contrast_low""contrast_low" and 'contrast_high'"contrast_high""contrast_high""contrast_high""contrast_high" are returned.
The remaining parameters (NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
, AngleStartAngleStartAngleStartAngleStartangleStart
,
AngleExtentAngleExtentAngleExtentAngleExtentangleExtent
, ScaleMinScaleMinScaleMinScaleMinscaleMin
, ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax
,
OptimizationOptimizationOptimizationOptimizationoptimization
, MetricMetricMetricMetricmetric
, ContrastContrastContrastContrastcontrast
, and
MinContrastMinContrastMinContrastMinContrastminContrast
) have the same meaning as in
create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel
, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel
, and
create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel
. The description of these
parameters can be looked up with these operators. These parameters
are used by determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
to calculate the
parameters to be determined in the same manner as in
create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel
, create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel
, and
create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel
. It should be noted that if the
parameters of a shape model with isotropic scaling should be
determined, i.e., if ParametersParametersParametersParametersparameters
contains
'scale_step'"scale_step""scale_step""scale_step""scale_step" either explicitly or implicitly via
'all'"all""all""all""all", the parameters ScaleMinScaleMinScaleMinScaleMinscaleMin
and
ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax
must contain one value each. If the parameters of
a shape model with anisotropic scaling should be determined, i.e.,
if ParametersParametersParametersParametersparameters
contains 'scale_r_step'"scale_r_step""scale_r_step""scale_r_step""scale_r_step" or
'scale_c_step'"scale_c_step""scale_c_step""scale_c_step""scale_c_step" either explicitly or implicitly, the
parameters ScaleMinScaleMinScaleMinScaleMinscaleMin
and ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax
must contain two
values each. In this case, the first value of the respective
parameter refers to the scaling in the row direction, while the
second value refers to the scaling in the column direction.
Note that in determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
some parameters
appear that can also be determined automatically
(NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
, OptimizationOptimizationOptimizationOptimizationoptimization
, ContrastContrastContrastContrastcontrast
,
MinContrastMinContrastMinContrastMinContrastminContrast
). If these parameters should not be determined
automatically, i.e., their name is not passed in
ParametersParametersParametersParametersparameters
, the corresponding parameters must contain
valid values and must not be set to 'auto'"auto""auto""auto""auto". In contrast, if
these parameters are to be determined automatically, their values
are treated in the following way: If the optimization or the
(hysteresis) contrast is to be determined automatically, i.e.,
ParametersParametersParametersParametersparameters
contains the value 'optimization'"optimization""optimization""optimization""optimization" or
'contrast'"contrast""contrast""contrast""contrast" ('contrast_hyst'"contrast_hyst""contrast_hyst""contrast_hyst""contrast_hyst"), the values passed in
OptimizationOptimizationOptimizationOptimizationoptimization
and ContrastContrastContrastContrastcontrast
are ignored. In
contrast, if the maximum number of pyramid levels or the minimum
contrast is to be determined automatically, i.e.,
ParametersParametersParametersParametersparameters
contains the value 'num_levels'"num_levels""num_levels""num_levels""num_levels" or
'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast", you can let HALCON determine suitable
values and at the same time specify an upper or lower boundary,
respectively:
If the maximum number of pyramid levels should be specified in
advance, NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
can be set to the particular value. If
in this case ParametersParametersParametersParametersparameters
contains the value
'num_levels'"num_levels""num_levels""num_levels""num_levels", the computed number of pyramid levels is at
most NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
. If NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
is set to
'auto'"auto""auto""auto""auto" (or 0 for backwards compatibility), the
number of pyramid levels is determined without restrictions as large
as possible.
If the minimum contrast should be specified in advance,
MinContrastMinContrastMinContrastMinContrastminContrast
can be set to the particular value. If in this
case ParametersParametersParametersParametersparameters
contains the value 'min_contrast'"min_contrast""min_contrast""min_contrast""min_contrast",
the computed minimum contrast is at least MinContrastMinContrastMinContrastMinContrastminContrast
. If
MinContrastMinContrastMinContrastMinContrastminContrast
is set to 'auto'"auto""auto""auto""auto", the minimum contrast
is determined without restrictions.
Attention
In some cases, the maximum number of pyramid levels that is returned by
determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
is higher than the number of levels
that are actually used in the shape model. The latter
can be queried by using get_shape_model_paramsget_shape_model_paramsGetShapeModelParamsGetShapeModelParamsGetShapeModelParams
after creating
the model. This might happen if the model is created by using
create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel
or create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel
and ScaleMin, ScaleRMin, or ScaleCMin is below 1.0.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
TemplateTemplateTemplateTemplatetemplate
(input_object) (multichannel-)image →
objectHImageHImageHobject (byte / uint2)
Input image whose domain will be used to create
the model.
NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
(input_control) integer →
HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
Maximum number of pyramid levels.
Default value:
'auto'
"auto"
"auto"
"auto"
"auto"
List of values: 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)
Smallest rotation of the model.
Default value: -0.39
Suggested values: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleExtentAngleExtentAngleExtentAngleExtentangleExtent
(input_control) angle.rad →
HTupleHTupleHtuple (real) (double) (double) (double)
Extent of the rotation angles.
Default value: 0.79
Suggested values: 6.29, 3.14, 1.57, 0.79, 0.39
Restriction: AngleExtent >= 0
ScaleMinScaleMinScaleMinScaleMinscaleMin
(input_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Minimum scale of the model.
Default value: 0.9
Suggested values: 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriction: ScaleMin > 0
ScaleMaxScaleMaxScaleMaxScaleMaxscaleMax
(input_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Maximum scale of the model.
Default value: 1.1
Suggested values: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5
Restriction: ScaleMax >= ScaleMin
OptimizationOptimizationOptimizationOptimizationoptimization
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Kind of optimization.
Default value:
'auto'
"auto"
"auto"
"auto"
"auto"
List of values: '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*)
Match metric.
Default value:
'use_polarity'
"use_polarity"
"use_polarity"
"use_polarity"
"use_polarity"
List of values: '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*)
Threshold or hysteresis thresholds for the contrast
of the object in the template image and optionally
minimum size of the object parts.
Default value:
'auto'
"auto"
"auto"
"auto"
"auto"
Suggested values: '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*)
Minimum contrast of the objects in the search images.
Default value:
'auto'
"auto"
"auto"
"auto"
"auto"
Suggested values: 'auto'"auto""auto""auto""auto", 1, 2, 3, 5, 7, 10, 20, 30, 40
Restriction: MinContrast < Contrast
ParametersParametersParametersParametersparameters
(input_control) string(-array) →
HTupleHTupleHtuple (string) (string) (HString) (char*)
Parameters to be determined automatically.
Default value:
'all'
"all"
"all"
"all"
"all"
List of values: '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 of the automatically determined parameter.
ParameterValueParameterValueParameterValueParameterValueparameterValue
(output_control) number-array →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Value of the automatically determined parameter.
Result
If the parameters are valid, the operator
determine_shape_model_paramsdetermine_shape_model_paramsDetermineShapeModelParamsDetermineShapeModelParamsDetermineShapeModelParams
returns the value 2 (H_MSG_TRUE). If
necessary an exception is raised. If the parameters
NumLevelsNumLevelsNumLevelsNumLevelsnumLevels
and ContrastContrastContrastContrastcontrast
are chosen such that the
model contains too few points, or the input image does not contain a
sufficient number of significant features, the error 8510 is
raised.
Possible Predecessors
draw_regiondraw_regionDrawRegionDrawRegionDrawRegion
,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain
,
thresholdthresholdThresholdThresholdThreshold
Possible Successors
create_shape_modelcreate_shape_modelCreateShapeModelCreateShapeModelCreateShapeModel
,
create_scaled_shape_modelcreate_scaled_shape_modelCreateScaledShapeModelCreateScaledShapeModelCreateScaledShapeModel
,
create_aniso_shape_modelcreate_aniso_shape_modelCreateAnisoShapeModelCreateAnisoShapeModelCreateAnisoShapeModel
See also
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
Module
Matching