Name
best_matchbest_matchBestMatchBestMatch — Searching the best matching of a template and an image.
Warning
best_matchbest_matchBestMatchBestMatchBestMatch is obsolete and is only provided for
reasons of backward compatibility. New applications should use the
shape-based or NCC-based operators instead.
Herror best_match(const Hobject Image, const Hlong TemplateID, double MaxError, const char* SubPixel, double* Row, double* Column, double* Error)
Herror T_best_match(const Hobject Image, const Htuple TemplateID, const Htuple MaxError, const Htuple SubPixel, Htuple* Row, Htuple* Column, Htuple* Error)
void BestMatch(const HObject& Image, const HTuple& TemplateID, const HTuple& MaxError, const HTuple& SubPixel, HTuple* Row, HTuple* Column, HTuple* Error)
void HTemplate::BestMatch(const HImage& Image, double MaxError, const HString& SubPixel, HTuple* Row, HTuple* Column, HTuple* Error) const
void HTemplate::BestMatch(const HImage& Image, double MaxError, const HString& SubPixel, double* Row, double* Column, double* Error) const
void HTemplate::BestMatch(const HImage& Image, double MaxError, const char* SubPixel, double* Row, double* Column, double* Error) const
void HImage::BestMatch(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, HTuple* Row, HTuple* Column, HTuple* Error) const
void HImage::BestMatch(const HTemplate& TemplateID, double MaxError, const HString& SubPixel, double* Row, double* Column, double* Error) const
void HImage::BestMatch(const HTemplate& TemplateID, double MaxError, const char* SubPixel, double* Row, double* Column, double* Error) const
static void HOperatorSet.BestMatch(HObject image, HTuple templateID, HTuple maxError, HTuple subPixel, out HTuple row, out HTuple column, out HTuple error)
void HTemplate.BestMatch(HImage image, double maxError, string subPixel, out HTuple row, out HTuple column, out HTuple error)
void HTemplate.BestMatch(HImage image, double maxError, string subPixel, out double row, out double column, out double error)
void HImage.BestMatch(HTemplate templateID, double maxError, string subPixel, out HTuple row, out HTuple column, out HTuple error)
void HImage.BestMatch(HTemplate templateID, double maxError, string subPixel, out double row, out double column, out double error)
The operator best_matchbest_matchBestMatchBestMatchBestMatch performs a matching of the template
of TemplateIDTemplateIDTemplateIDTemplateIDtemplateID and ImageImageImageImageimage.
Hereby the template will be moved over the points of ImageImageImageImageimage
so that the template will lie always inside ImageImageImageImageimage.
best_matchbest_matchBestMatchBestMatchBestMatch works similar to fast_matchfast_matchFastMatchFastMatchFastMatch, with the
exception, that each time a better match is found the value
of MaxErrorMaxErrorMaxErrorMaxErrormaxError is internally updated to a lower value
to reduce runtime.
With regard to the parameter SubPixelSubPixelSubPixelSubPixelsubPixel, the position will
be indicated by subpixel accuracy.
The matching criterion (“displaced frame difference”)
is defined as follows:
The runtime of the operator depends on the size of the domain of
ImageImageImageImageimage.
Therefore it is important to restrict the domain as far as possible,
i.e. to apply the operator only in a very confined “region of interest”.
The parameter MaxErrorMaxErrorMaxErrorMaxErrormaxError determines the maximal error which the
searched position is allowed to have at most.
The lower this value is, the faster the operator runs.
RowRowRowRowrow and ColumnColumnColumnColumncolumn return the position of the best match,
whereby ErrorErrorErrorErrorerror indicates the average difference of the grayvalues.
If no position with an error below MaxErrorMaxErrorMaxErrorMaxErrormaxError was found
the position (0,0) and a matching result of 255 for ErrorErrorErrorErrorerror
are returned. In this case MaxErrorMaxErrorMaxErrorMaxErrormaxError has to be set
larger.
The maximum error of the position (without noise) is 0.1 pixel.
The average error is 0.03 pixel.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
Input image inside of which the pattern has to
be found.
Maximum average difference of the grayvalues.
Default value: 20.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
Typical range of values: 0
≤
MaxError
MaxError
MaxError
MaxError
maxError
≤
255
Minimum increment: 1
Recommended increment: 3
Subpixel accuracy in case of 'true'"true""true""true""true".
Default value:
'false'
"false"
"false"
"false"
"false"
List of values: 'false'"false""false""false""false", 'true'"true""true""true""true"
Row position of the best match.
Column position of the best match.
Average divergence of the grayvalues of the
best match.
If the parameter values are correct, the operator best_matchbest_matchBestMatchBestMatchBestMatch
returns the value 2 (H_MSG_TRUE).
If the input is empty (no input images are available) the behaviour 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>)SetSystem("no_object_result",<Result>).
If necessary, an exception is raised.
create_templatecreate_templateCreateTemplateCreateTemplateCreateTemplate,
read_templateread_templateReadTemplateReadTemplateReadTemplate,
set_offset_templateset_offset_templateSetOffsetTemplateSetOffsetTemplateSetOffsetTemplate,
set_reference_templateset_reference_templateSetReferenceTemplateSetReferenceTemplateSetReferenceTemplate,
adapt_templateadapt_templateAdaptTemplateAdaptTemplateAdaptTemplate,
draw_regiondraw_regionDrawRegionDrawRegionDrawRegion,
draw_rectangle1draw_rectangle1DrawRectangle1DrawRectangle1DrawRectangle1,
reduce_domainreduce_domainReduceDomainReduceDomainReduceDomain
fast_matchfast_matchFastMatchFastMatchFastMatch,
fast_match_mgfast_match_mgFastMatchMgFastMatchMgFastMatchMg,
best_match_mgbest_match_mgBestMatchMgBestMatchMgBestMatchMg,
best_match_pre_mgbest_match_pre_mgBestMatchPreMgBestMatchPreMgBestMatchPreMg,
best_match_rotbest_match_rotBestMatchRotBestMatchRotBestMatchRot,
best_match_rot_mgbest_match_rot_mgBestMatchRotMgBestMatchRotMgBestMatchRotMg,
exhaustive_matchexhaustive_matchExhaustiveMatchExhaustiveMatchExhaustiveMatch,
exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMgExhaustiveMatchMg
Matching