determine_ncc_model_paramsT_determine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params确定归一化互相关模型参数(算子)
名称
determine_ncc_model_paramsT_determine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params — 确定 NCC 模型的参数。
签名
void DetermineNccModelParams(const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& Metric, const HTuple& Parameters, HTuple* ParameterName, HTuple* ParameterValue)
static HTuple HNCCModel::DetermineNccModelParams(const HImage& Template, const HTuple& NumLevels, double AngleStart, double AngleExtent, const HString& Metric, const HTuple& Parameters, HTuple* ParameterValue)
static HTuple HNCCModel::DetermineNccModelParams(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, const HString& Metric, const HString& Parameters, HTuple* ParameterValue)
static HTuple HNCCModel::DetermineNccModelParams(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, const char* Metric, const char* Parameters, HTuple* ParameterValue)
static HTuple HNCCModel::DetermineNccModelParams(const HImage& Template, Hlong NumLevels, double AngleStart, double AngleExtent, const wchar_t* Metric, const wchar_t* Parameters, HTuple* ParameterValue)
(
Windows only)
static void HOperatorSet.DetermineNccModelParams(HObject template, HTuple numLevels, HTuple angleStart, HTuple angleExtent, HTuple metric, HTuple parameters, out HTuple parameterName, out HTuple parameterValue)
static HTuple HNCCModel.DetermineNccModelParams(HImage template, HTuple numLevels, double angleStart, double angleExtent, string metric, HTuple parameters, out HTuple parameterValue)
static HTuple HNCCModel.DetermineNccModelParams(HImage template, int numLevels, double angleStart, double angleExtent, string metric, string parameters, out HTuple parameterValue)
描述
determine_ncc_model_paramsdetermine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params 可根据模型图像
TemplateTemplateTemplateTemplatetemplatetemplate 自动确定 NCC 模型的某些参数。待确定的参数可通过 ParametersParametersParametersParametersparametersparameters 进行指定。determine_ncc_model_paramsdetermine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params 可用于确定与
create_ncc_modelcreate_ncc_modelCreateNccModelCreateNccModelCreateNccModelcreate_ncc_model 中相应参数设置为 'auto'"auto""auto""auto""auto""auto" 时自动确定的参数相同的参数:金字塔层数(ParametersParametersParametersParametersparametersparameters =
'num_levels'"num_levels""num_levels""num_levels""num_levels""num_levels")和/或角度步长(ParametersParametersParametersParametersparametersparameters = 'angle_step'"angle_step""angle_step""angle_step""angle_step""angle_step")。通过在 ParametersParametersParametersParametersparametersparameters 中传递上述值的元组,可以确定这些参数的任意组合。若需同时确定上述所有参数,可传入值 'all'"all""all""all""all""all"。
determine_ncc_model_paramsdetermine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params 主要用于在创建模型之前确定上述参数,例如在交互式系统中,该系统会向用户提供这些参数的建议值,但允许用户修改建议值。
自动确定的参数将作为名称-值对返回至 ParameterNameParameterNameParameterNameParameterNameparameterNameparameter_name 和 ParameterValueParameterValueParameterValueParameterValueparameterValueparameter_value 中。ParameterNameParameterNameParameterNameParameterNameparameterNameparameter_name 中的参数名称与 ParametersParametersParametersParametersparametersparameters 中的名称完全一致,当然,其中的值 'all'"all""all""all""all""all" 会被替换为实际的参数名称。
输入参数(NumLevelsNumLevelsNumLevelsNumLevelsnumLevelsnum_levels、AngleStartAngleStartAngleStartAngleStartangleStartangle_start、AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent 和 MetricMetricMetricMetricmetricmetric)的含义与 create_ncc_modelcreate_ncc_modelCreateNccModelCreateNccModelCreateNccModelcreate_ncc_model 中相同。可通过该算子查阅这些参数的说明。determine_ncc_model_paramsdetermine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params 会使用这些参数来计算待确定的参数,其计算方式与 create_ncc_modelcreate_ncc_modelCreateNccModelCreateNccModelCreateNccModelcreate_ncc_model 中相同。
请注意,在 determine_ncc_model_paramsdetermine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params 中,输入参数 NumLevelsNumLevelsNumLevelsNumLevelsnumLevelsnum_levels 也可以自动确定。如果该参数不应自动确定(即未在 ParametersParametersParametersParametersparametersparameters 中传递该名称),则该参数必须包含一个有效值,且不能设置为 'auto'"auto""auto""auto""auto""auto"。相反,如果要自动确定金字塔层数的最大值,即 ParametersParametersParametersParametersparametersparameters 中包含值 'num_levels'"num_levels""num_levels""num_levels""num_levels""num_levels",您可以让 HALCON 确定一个合适的值,同时指定一个上限:
如果需要预先指定金字塔层数的最大值,可以将输入参数 NumLevelsNumLevelsNumLevelsNumLevelsnumLevelsnum_levels 设置为特定值。在此情况下,如果 ParametersParametersParametersParametersparametersparameters 包含值
'num_levels'"num_levels""num_levels""num_levels""num_levels""num_levels",则计算出的金字塔层数最多为 NumLevelsNumLevelsNumLevelsNumLevelsnumLevelsnum_levels。如果 NumLevelsNumLevelsNumLevelsNumLevelsnumLevelsnum_levels 设置为 'auto'"auto""auto""auto""auto""auto" 或
0,则金字塔层数将不受限制地尽可能地增加。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
TemplateTemplateTemplateTemplatetemplatetemplate (输入对象) singlechannelimage → objectHImageHObjectHImageHobject (byte / uint2)
输入图像,其域将用于创建模型。
NumLevelsNumLevelsNumLevelsNumLevelsnumLevelsnum_levels (输入控制) integer → HTupleUnion[int, str]HTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)
金字塔层数的最大值。
默认值:
'auto'
"auto"
"auto"
"auto"
"auto"
"auto"
值列表:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'auto'"auto""auto""auto""auto""auto"
AngleStartAngleStartAngleStartAngleStartangleStartangle_start (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
该模型的最小旋转。
默认值:
-0.39
建议值:
-3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleExtentAngleExtentAngleExtentAngleExtentangleExtentangle_extent (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
旋转角度的范围。
默认值:
0.79
建议值:
6.29, 3.14, 1.57, 0.79, 0.39
限制:
AngleExtent >= 0
MetricMetricMetricMetricmetricmetric (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
匹配指标。
默认值:
'use_polarity'
"use_polarity"
"use_polarity"
"use_polarity"
"use_polarity"
"use_polarity"
值列表:
'ignore_global_polarity'"ignore_global_polarity""ignore_global_polarity""ignore_global_polarity""ignore_global_polarity""ignore_global_polarity", 'use_polarity'"use_polarity""use_polarity""use_polarity""use_polarity""use_polarity"
ParametersParametersParametersParametersparametersparameters (输入控制) string(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
参数将自动确定。
默认值:
'all'
"all"
"all"
"all"
"all"
"all"
值列表:
'all'"all""all""all""all""all", 'angle_step'"angle_step""angle_step""angle_step""angle_step""angle_step", 'num_levels'"num_levels""num_levels""num_levels""num_levels""num_levels"
ParameterNameParameterNameParameterNameParameterNameparameterNameparameter_name (输出控制) string-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
自动确定的参数名称。
ParameterValueParameterValueParameterValueParameterValueparameterValueparameter_value (输出控制) number-array → HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
自动确定的参数值。
结果
如果参数有效,算子
determine_ncc_model_paramsdetermine_ncc_model_paramsDetermineNccModelParamsDetermineNccModelParamsDetermineNccModelParamsdetermine_ncc_model_params 返回值 2 (H_MSG_TRUE)。
可能的后继
create_ncc_modelcreate_ncc_modelCreateNccModelCreateNccModelCreateNccModelcreate_ncc_model
另见
find_ncc_modelfind_ncc_modelFindNccModelFindNccModelFindNccModelfind_ncc_model
模块
匹配