best_match_rotT_best_match_rotBestMatchRotBestMatchRot (Operator)
Name
best_match_rotT_best_match_rotBestMatchRotBestMatchRot
— Searching the best matching of a template and an image with rotation.
Warning
best_match_rotbest_match_rotBestMatchRotBestMatchRotBestMatchRot
is obsolete and is only provided for
reasons of backward compatibility. New applications should use the
shape-based or NCC-based operators instead.
Signature
void BestMatchRot(const HObject& Image, const HTuple& TemplateID, const HTuple& AngleStart, const HTuple& AngleExtend, const HTuple& MaxError, const HTuple& SubPixel, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Error)
void HTemplate::BestMatchRot(const HImage& Image, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Error) const
void HTemplate::BestMatchRot(const HImage& Image, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, double* Row, double* Column, double* Angle, double* Error) const
void HTemplate::BestMatchRot(const HImage& Image, double AngleStart, double AngleExtend, double MaxError, const char* SubPixel, double* Row, double* Column, double* Angle, double* Error) const
void HTemplate::BestMatchRot(const HImage& Image, double AngleStart, double AngleExtend, double MaxError, const wchar_t* SubPixel, double* Row, double* Column, double* Angle, double* Error) const
(Windows only)
void HImage::BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, HTuple* Row, HTuple* Column, HTuple* Angle, HTuple* Error) const
void HImage::BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const HString& SubPixel, double* Row, double* Column, double* Angle, double* Error) const
void HImage::BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const char* SubPixel, double* Row, double* Column, double* Angle, double* Error) const
void HImage::BestMatchRot(const HTemplate& TemplateID, double AngleStart, double AngleExtend, double MaxError, const wchar_t* SubPixel, double* Row, double* Column, double* Angle, double* Error) const
(Windows only)
static void HOperatorSet.BestMatchRot(HObject image, HTuple templateID, HTuple angleStart, HTuple angleExtend, HTuple maxError, HTuple subPixel, out HTuple row, out HTuple column, out HTuple angle, out HTuple error)
void HTemplate.BestMatchRot(HImage image, double angleStart, double angleExtend, double maxError, string subPixel, out HTuple row, out HTuple column, out HTuple angle, out HTuple error)
void HTemplate.BestMatchRot(HImage image, double angleStart, double angleExtend, double maxError, string subPixel, out double row, out double column, out double angle, out double error)
void HImage.BestMatchRot(HTemplate templateID, double angleStart, double angleExtend, double maxError, string subPixel, out HTuple row, out HTuple column, out HTuple angle, out HTuple error)
void HImage.BestMatchRot(HTemplate templateID, double angleStart, double angleExtend, double maxError, string subPixel, out double row, out double column, out double angle, out double error)
Description
The operator best_match_rotbest_match_rotBestMatchRotBestMatchRotBestMatchRot
performs a matching of the template
of TemplateIDTemplateIDTemplateIDTemplateIDtemplateID
and ImageImageImageImageimage
.
It works similar to best_matchbest_matchBestMatchBestMatchBestMatch
with the extension
that the pattern can be rotated.
The parameters AngleStartAngleStartAngleStartAngleStartangleStart
and AngleExtendAngleExtendAngleExtendAngleExtendangleExtend
define the maximum rotation of the pattern: AngleStartAngleStartAngleStartAngleStartangleStart
specifies the maximum counter clockwise rotation and
AngleExtendAngleExtendAngleExtendAngleExtendangleExtend
the maximum clockwise rotation relative
to this angle.
Both values have to smaller or equal to the values
used for the creation of the pattern (see create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRot
).
In addition to best_matchbest_matchBestMatchBestMatchBestMatch
best_match_rotbest_match_rotBestMatchRotBestMatchRotBestMatchRot
returns the rotion angle of the pattern in AngleAngleAngleAngleangle
(radiant).
The accuracy of this angle depends on the parameter AngleStep
of create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRot
.
In the case of SubPixelSubPixelSubPixelSubPixelsubPixel
= 'true'"true""true""true""true" the position
and the angle are calculated with “sub pixel” accuracy.
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) →
objectHImageHImageHobject (byte)
Input image inside of which the pattern has to
be found.
TemplateIDTemplateIDTemplateIDTemplateIDtemplateID
(input_control) template →
HTemplate, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Template number.
AngleStartAngleStartAngleStartAngleStartangleStart
(input_control) angle.rad →
HTupleHTupleHtuple (real) (double) (double) (double)
Smallest Rotation of the pattern.
Default value: -0.39
Suggested values: -3.14, -1.57, -0.79, -0.39, -0.20, 0.0
AngleExtendAngleExtendAngleExtendAngleExtendangleExtend
(input_control) angle.rad →
HTupleHTupleHtuple (real) (double) (double) (double)
Maximum positive Extension of AngleStartAngleStartAngleStartAngleStartangleStart
.
Default value: 0.79
Suggested values: 6.28, 3.14, 1.57, 0.79, 0.39
Restriction: AngleExtend > 0
MaxErrorMaxErrorMaxErrorMaxErrormaxError
(input_control) real →
HTupleHTupleHtuple (real) (double) (double) (double)
Maximum average difference of the grayvalues.
Default value: 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
Typical range of values: 0
≤
MaxError
MaxError
MaxError
MaxError
maxError
≤
255
Minimum increment: 1
Recommended increment: 3
SubPixelSubPixelSubPixelSubPixelsubPixel
(input_control) string →
HTupleHTupleHtuple (string) (string) (HString) (char*)
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"
RowRowRowRowrow
(output_control) point.y(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Row position of the best match.
ColumnColumnColumnColumncolumn
(output_control) point.x(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Column position of the best match.
AngleAngleAngleAngleangle
(output_control) angle.rad(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Rotation angle of pattern.
ErrorErrorErrorErrorerror
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Average divergence of the grayvalues of the
best match.
Result
If the parameter values are correct, the operator best_match_rotbest_match_rotBestMatchRotBestMatchRotBestMatchRot
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.
Possible Predecessors
create_template_rotcreate_template_rotCreateTemplateRotCreateTemplateRotCreateTemplateRot
,
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
Alternatives
best_match_rot_mgbest_match_rot_mgBestMatchRotMgBestMatchRotMgBestMatchRotMg
See also
best_matchbest_matchBestMatchBestMatchBestMatch
,
best_match_mgbest_match_mgBestMatchMgBestMatchMgBestMatchMg
Module
Matching