Operator Reference

fast_match_mgT_fast_match_mgFastMatchMgFastMatchMgfast_match_mg (Operator)

fast_match_mgT_fast_match_mgFastMatchMgFastMatchMgfast_match_mg — Searching all good gray value matches in a pyramid.

Warning

fast_match_mgfast_match_mgFastMatchMgFastMatchMgfast_match_mg is obsolete and is only provided for reasons of backward compatibility. The operator will be removed with HALCON 25.11. New applications should use the shape-based or NCC-based operators instead.

Signature

fast_match_mg(Image : Matches : TemplateID, MaxError, NumLevel : )

Herror T_fast_match_mg(const Hobject Image, Hobject* Matches, const Htuple TemplateID, const Htuple MaxError, const Htuple NumLevel)

void FastMatchMg(const HObject& Image, HObject* Matches, const HTuple& TemplateID, const HTuple& MaxError, const HTuple& NumLevel)

HRegion HTemplate::FastMatchMg(const HImage& Image, double MaxError, const HTuple& NumLevel) const

HRegion HTemplate::FastMatchMg(const HImage& Image, double MaxError, Hlong NumLevel) const

HRegion HImage::FastMatchMg(const HTemplate& TemplateID, double MaxError, const HTuple& NumLevel) const

HRegion HImage::FastMatchMg(const HTemplate& TemplateID, double MaxError, Hlong NumLevel) const

static void HOperatorSet.FastMatchMg(HObject image, out HObject matches, HTuple templateID, HTuple maxError, HTuple numLevel)

HRegion HTemplate.FastMatchMg(HImage image, double maxError, HTuple numLevel)

HRegion HTemplate.FastMatchMg(HImage image, double maxError, int numLevel)

HRegion HImage.FastMatchMg(HTemplate templateID, double maxError, HTuple numLevel)

HRegion HImage.FastMatchMg(HTemplate templateID, double maxError, int numLevel)

def fast_match_mg(image: HObject, template_id: HHandle, max_error: float, num_level: MaybeSequence[int]) -> HObject

Description

The operator fast_match_mgfast_match_mgFastMatchMgFastMatchMgfast_match_mg like the operator fast_matchfast_matchFastMatchFastMatchfast_match performs a matching of the template of TemplateIDTemplateIDTemplateIDtemplateIDtemplate_id and ImageImageImageimageimage. In contrast to fast_matchfast_matchFastMatchFastMatchfast_match, however, the search for good matches starts in scaled down images (pyramid). The number of levels of the pyramid will be determined by NumLevelNumLevelNumLevelnumLevelnum_level. Hereby the value 1 indicates that no pyramid will be used. In this case the operator fast_match_mgfast_match_mgFastMatchMgFastMatchMgfast_match_mg is equivalent to the operator fast_matchfast_matchFastMatchFastMatchfast_match. The value 2 triggers the search in the image with half the framesize. The search for all those points showing an error small enough in the scaled down image (error smaller than MaxErrorMaxErrorMaxErrormaxErrormax_error) will be refined at the corresponding positions in the original image (ImageImageImageimageimage).

The runtime of matching depends on the parameter MaxErrorMaxErrorMaxErrormaxErrormax_error: the larger the value the longer is the processing time, because more points of the pattern have to be tested. If MaxErrorMaxErrorMaxErrormaxErrormax_error is to low the pattern will not be found. The value has therefore to be optimized for every application.

NumLevelNumLevelNumLevelnumLevelnum_level indicates the number of levels of the pyramid, including the original image. Optionally a second value can be given. This value specifies the number (0..n) of the lowest level which is used the matching. The region found up to this level will then be zoomed to the size of the original level. This can used to increase the runtime in the case that the accuracy does not have to be so high.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Automatically parallelized on tuple level.

Parameters

ImageImageImageimageimage (input_object)  singlechannelimage(-array) objectHImageHObjectHObjectHobject (byte)

Input image inside of which the pattern has to be found.

MatchesMatchesMatchesmatchesmatches (output_object)  region(-array) objectHRegionHObjectHObjectHobject *

All points which have an error below a certain threshold.

TemplateIDTemplateIDTemplateIDtemplateIDtemplate_id (input_control)  template HTemplate, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Template number.

MaxErrorMaxErrorMaxErrormaxErrormax_error (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Maximal average difference of the gray values.

Default: 30.0

Suggested values: 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 9.0, 11.0, 15.0, 17.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0

Value range: 0 ≤ MaxError MaxError MaxError maxError max_error ≤ 255

Minimum increment: 1

Recommended increment: 3

NumLevelNumLevelNumLevelnumLevelnum_level (input_control)  integer(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Number of levels in the pyramid.

Default: 3

Suggested values: 1, 2, 3, 4, 5, 6, 7, 8

Result

If the parameter values are correct, the operator fast_match_mgfast_match_mgFastMatchMgFastMatchMgfast_match_mg returns the value 2 ( H_MSG_TRUE) . If the input is empty (no input images are available) the behavior can be set via set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>). If necessary, an exception is raised.

Possible Predecessors

create_templatecreate_templateCreateTemplateCreateTemplatecreate_template, read_templateread_templateReadTemplateReadTemplateread_template, adapt_templateadapt_templateAdaptTemplateAdaptTemplateadapt_template, draw_regiondraw_regionDrawRegionDrawRegiondraw_region, draw_rectangle1draw_rectangle1DrawRectangle1DrawRectangle1draw_rectangle1, reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain

Alternatives

best_matchbest_matchBestMatchBestMatchbest_match, best_match_mgbest_match_mgBestMatchMgBestMatchMgbest_match_mg, fast_matchfast_matchFastMatchFastMatchfast_match, exhaustive_matchexhaustive_matchExhaustiveMatchExhaustiveMatchexhaustive_match, exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMgexhaustive_match_mg

Module

Matching