create_template_rotT_create_template_rotCreateTemplateRotCreateTemplateRotcreate_template_rot创建模板旋转(算子)

名称

create_template_rotT_create_template_rotCreateTemplateRotCreateTemplateRotcreate_template_rot — 准备旋转模板匹配的模式。

警告

create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 已过时,仅出于向后兼容性考虑而保留。新应用程序应改用基于形状或基于 NCC 的算子。

签名

create_template_rot(Template : : NumLevel, AngleStart, AngleExtend, AngleStep, Optimize, GrayValues : TemplateID)

Herror T_create_template_rot(const Hobject Template, const Htuple NumLevel, const Htuple AngleStart, const Htuple AngleExtend, const Htuple AngleStep, const Htuple Optimize, const Htuple GrayValues, Htuple* TemplateID)

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)

def create_template_rot(template: HObject, num_level: int, angle_start: float, angle_extend: float, angle_step: float, optimize: str, gray_values: str) -> HHandle

描述

算子 create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 会对作为图像传递的模式进行预处理,以便进行模板匹配。作为 create_templatecreate_templateCreateTemplateCreateTemplateCreateTemplatecreate_template 的扩展,该匹配功能可应用于旋转后的模式。参数 AngleStartAngleStartAngleStartAngleStartangleStartangle_startAngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend 定义了模式的最大旋转范围:AngleStartAngleStartAngleStartAngleStartangleStartangle_start 指定最大逆时针旋转角度,AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend 指定相对于该角度的最大顺时针旋转角度。因此 AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend 必须小于 。通过参数 AngleStepAngleStepAngleStepAngleStepangleStepangle_step,可以指定(在最高分辨率级别下的)最大角度分辨率。

请注意,为了在匹配过程中减少运行时间,所有可能的旋转都会预先计算。这会导致 create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRotcreate_template_rot 的执行时间变长,并且模板对内存的需求较高。内存占用量取决于参数 AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extendAngleStepAngleStepAngleStepAngleStepangleStepangle_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

AngleExtendAngleExtendAngleExtendAngleExtendangleExtendangle_extend (输入控制)  angle.rad HTuplefloatHTupleHtuple (real) (double) (double) (double)

AngleStartAngleStartAngleStartAngleStartangleStartangle_start 的最大正向延伸。

默认值: 0.79

建议值: 6.28, 3.14, 1.57, 0.79, 0.39

限制: AngleExtend > 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

模块

匹配