create_template_rotT_create_template_rotCreateTemplateRotCreateTemplateRotcreate_template_rot创建模板旋转(算子)
名称
create_template_rotT_create_template_rotCreateTemplateRotCreateTemplateRotcreate_template_rot — 准备旋转模板匹配的模式。
警告
create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 已过时,仅出于向后兼容性考虑而保留。新应用程序应改用基于形状或基于 NCC 的算子。
签名
void CreateTemplateRot(const HObject& Template, const HTuple& NumLevel, const HTuple& AngleStart, const HTuple& AngleExtend, const HTuple& AngleStep, const HTuple& Optimize, const HTuple& GrayValues, HTuple* TemplateID)
void HTemplate::HTemplate(const HImage& Template, Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const HString& Optimize, const HString& GrayValues)
void HTemplate::HTemplate(const HImage& Template, Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const char* Optimize, const char* GrayValues)
void HTemplate::HTemplate(const HImage& Template, Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const wchar_t* Optimize, const wchar_t* GrayValues)
(
Windows only)
void HTemplate::CreateTemplateRot(const HImage& Template, Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const HString& Optimize, const HString& GrayValues)
void HTemplate::CreateTemplateRot(const HImage& Template, Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const char* Optimize, const char* GrayValues)
void HTemplate::CreateTemplateRot(const HImage& Template, Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const wchar_t* Optimize, const wchar_t* GrayValues)
(
Windows only)
HTemplate HImage::CreateTemplateRot(Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const HString& Optimize, const HString& GrayValues) const
HTemplate HImage::CreateTemplateRot(Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const char* Optimize, const char* GrayValues) const
HTemplate HImage::CreateTemplateRot(Hlong NumLevel, double AngleStart, double AngleExtend, double AngleStep, const wchar_t* Optimize, const wchar_t* GrayValues) const
(
Windows only)
static void HOperatorSet.CreateTemplateRot(HObject template, HTuple numLevel, HTuple angleStart, HTuple angleExtend, HTuple angleStep, HTuple optimize, HTuple grayValues, out HTuple templateID)
public HTemplate(HImage template, int numLevel, double angleStart, double angleExtend, double angleStep, string optimize, string grayValues)
void HTemplate.CreateTemplateRot(HImage template, int numLevel, double angleStart, double angleExtend, double angleStep, string optimize, string grayValues)
HTemplate HImage.CreateTemplateRot(int numLevel, double angleStart, double angleExtend, double angleStep, string optimize, string grayValues)
描述
算子 create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 会对作为图像传递的模式进行预处理,以便进行模板匹配。作为 create_templatecreate_templateCreateTemplateCreateTemplateCreateTemplatecreate_template 的扩展,该匹配功能可应用于旋转后的模式。参数 AngleStartAngleStartAngleStartAngleStartangleStartangle_start 和 AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend
定义了模式的最大旋转范围:AngleStartAngleStartAngleStartAngleStartangleStartangle_start
指定最大逆时针旋转角度,AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend 指定相对于该角度的最大顺时针旋转角度。因此
AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend 必须小于
。通过参数 AngleStepAngleStepAngleStepAngleStepangleStepangle_step,可以指定(在最高分辨率级别下的)最大角度分辨率。
请注意,为了在匹配过程中减少运行时间,所有可能的旋转都会预先计算。这会导致 create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 的执行时间变长,并且模板对内存的需求较高。内存占用量取决于参数 AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend 和 AngleStepAngleStepAngleStepAngleStepangleStepangle_step。金字塔层数可以忽略不计。如果 A 是
TemplateTemplateTemplateTemplatetemplatetemplate 的像素数,则该模板所需的内存 M(以字节为单位)约为:
转换完成后,系统会为该模板分配一个编号(TemplateIDTemplateIDTemplateIDTemplateIDtemplateIDtemplate_id),以便在后续流程中使用。
有关其他参数的说明,请参阅 create_templatecreate_templateCreateTemplateCreateTemplateCreateTemplatecreate_template 算子。
注意
请注意,根据分辨率的不同,可能需要生成大量预先计算好的模式,这可能会导致内存需求激增。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
TemplateTemplateTemplateTemplatetemplatetemplate (输入对象) singlechannelimage → objectHImageHObjectHImageHobject (byte)
输入图像,其图像域将用于模式匹配处理。
NumLevelNumLevelNumLevelNumLevelnumLevelnum_level (输入控制) integer → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
金字塔层数的上限。
默认值:
4
值列表:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
AngleStartAngleStartAngleStartAngleStartangleStartangle_start (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
模式的最小旋转角度(弧度)。
默认值:
-0.39
建议值:
-3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleStepAngleStepAngleStepAngleStepangleStepangle_step (输入控制) angle.rad → HTuplefloatHTupleHtuple (real) (double) (double) (double)
匹配的步长(角度精度)。
默认值:
0.0982
建议值:
0.3927, 0.1963, 0.0982, 0.0491, 0.0245
限制:
AngleStep > 0
OptimizeOptimizeOptimizeOptimizeoptimizeoptimize (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
优化类型。
默认值:
'sort'
"sort"
"sort"
"sort"
"sort"
"sort"
值列表:
'none'"none""none""none""none""none", 'sort'"sort""sort""sort""sort""sort"
GrayValuesGrayValuesGrayValuesGrayValuesgrayValuesgray_values (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
灰度值类型。
默认值:
'original'
"original"
"original"
"original"
"original"
"original"
值列表:
'gradient'"gradient""gradient""gradient""gradient""gradient", 'normalized'"normalized""normalized""normalized""normalized""normalized", 'original'"original""original""original""original""original", 'sobel'"sobel""sobel""sobel""sobel""sobel"
TemplateIDTemplateIDTemplateIDTemplateIDtemplateIDtemplate_id (输出控制) template → HTemplate, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
模板编号。
结果
如果参数有效,算子
create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 返回值 2 (H_MSG_TRUE)。如有必要,则抛出异常。
可能的前趋
draw_regiondraw_regionDrawRegionDrawRegionDrawRegiondraw_region,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain,
thresholdthresholdThresholdThresholdThresholdthreshold
可能的后继
best_match_rotbest_match_rotBestMatchRotBestMatchRotBestMatchRotbest_match_rot,
best_match_rot_mgbest_match_rot_mgBestMatchRotMgBestMatchRotMgBestMatchRotMgbest_match_rot_mg,
adapt_templateadapt_templateAdaptTemplateAdaptTemplateAdaptTemplateadapt_template,
set_reference_templateset_reference_templateSetReferenceTemplateSetReferenceTemplateSetReferenceTemplateset_reference_template,
clear_templateclear_templateClearTemplateClearTemplateClearTemplateclear_template,
set_offset_templateset_offset_templateSetOffsetTemplateSetOffsetTemplateSetOffsetTemplateset_offset_template,
write_templatewrite_templateWriteTemplateWriteTemplateWriteTemplatewrite_template
替代
create_ncc_modelcreate_ncc_modelCreateNccModelCreateNccModelCreateNccModelcreate_ncc_model,
create_templatecreate_templateCreateTemplateCreateTemplateCreateTemplatecreate_template
模块
匹配