Name
best_matchbest_matchBestMatchbest_matchBestMatchBestMatch — Suche des besten Matching zwischen einem Template und einem Bild.
Warnung
best_matchbest_matchBestMatchbest_matchBestMatchBestMatch ist veraltet und wird nur aus Gründen
der Rückwärtskompatibilität zur Verfügung gestellt. Neue
Applikationen sollten stattdessen die
Form-basierten oder NCC-basierten Operatoren verwenden.
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)
Herror best_match(Hobject Image, const HTuple& TemplateID, const HTuple& MaxError, const HTuple& SubPixel, double* Row, double* Column, double* Error)
Herror best_match(Hobject Image, const HTuple& TemplateID, const HTuple& MaxError, const HTuple& SubPixel, HTuple* Row, HTuple* Column, HTuple* Error)
double HImage::BestMatch(const HTemplate& TemplateID, const HTuple& MaxError, const HTuple& SubPixel, double* Column, double* Error) const
HTuple HImageArray::BestMatch(const HTemplate& TemplateID, const HTuple& MaxError, const HTuple& SubPixel, HTuple* Column, HTuple* Error) const
HTuple HTemplate::BestMatch(const HImageArray& Image, const HTuple& MaxError, const HTuple& SubPixel, HTuple* Column, HTuple* Error) const
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
void HOperatorSetX.BestMatch(
[in] IHUntypedObjectX* Image, [in] VARIANT TemplateID, [in] VARIANT MaxError, [in] VARIANT SubPixel, [out] VARIANT* Row, [out] VARIANT* Column, [out] VARIANT* Error)
VARIANT HTemplateX.BestMatch(
[in] IHImageX* Image, [in] double MaxError, [in] BSTR SubPixel, [out] VARIANT* Column, [out] VARIANT* Error)
VARIANT HImageX.BestMatch(
[in] IHTemplateX* TemplateID, [in] double MaxError, [in] BSTR SubPixel, [out] VARIANT* Column, [out] VARIANT* Error)
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)
best_matchbest_matchBestMatchbest_matchBestMatchBestMatch führt ein Matching zwischen dem Template von
TemplateIDTemplateIDTemplateIDTemplateIDTemplateIDtemplateID und ImageImageImageImageImageimage durch.
Dabei wird das Template so über die Punkte von
ImageImageImageImageImageimage geschoben, dass es immer vollständig innerhalb von
ImageImageImageImageImageimage liegt.
best_matchbest_matchBestMatchbest_matchBestMatchBestMatch arbeitet ähnlich wie fast_matchfast_matchFastMatchfast_matchFastMatchFastMatch mit der
Erweiterung, dass jedesmal wenn eine Position mit einem geringeren
Matching-Fehler gefunden wurde, der Parameter MaxErrorMaxErrorMaxErrorMaxErrorMaxErrormaxError
intern entsprechend angepasst (d.h. verkleinert) wird,
um die Rechenzeit zu verkürzen.
Abhängig vom Parameter SubPixelSubPixelSubPixelSubPixelSubPixelsubPixel wird die
Position in Subpixelgenauigkeit ausgegeben.
Das Matching-Kriterium („displaced frame difference“)
ist wie folgt definiert:
Die Laufzeit des Verfahrens hängt von der Größe des Definitionsbereiches
von ImageImageImageImageImageimage ab.
Es ist daher wichtig, den Definitionsbereich
möglichst einzugrenzen,
d.h. den Operator nur in einer möglichst eng umrissenen
„region of interest“ anzuwenden.
Der Parameter MaxErrorMaxErrorMaxErrorMaxErrorMaxErrormaxError legt den maximalen Fehler fest,
den die gesuchte Position haben darf.
Um so kleiner dieser Wert ist, um so schneller läuft das Verfahren.
RowRowRowRowRowrow und ColumnColumnColumnColumnColumncolumn liefern die Position des
Best-Match, wobei ErrorErrorErrorErrorErrorerror die mittlere Abweichung der Grauwerte
angiebt.
Falls keine Position mit einem Fehler unter MaxErrorMaxErrorMaxErrorMaxErrorMaxErrormaxError
gefunden wurde, wird die Position (0,0) und ein
Matching-Fehler von 255 für ErrorErrorErrorErrorErrorerror geliefert.
In diesem Fall müs der Wert für MaxErrorMaxErrorMaxErrorMaxErrorMaxErrormaxError größer
gewählt werden.
Der maximale Fehler der Position (ohne Rauschen) beträgt im sub-Pixel Modus
0.1 Pixel. Der mittlere Fehler betra"gt 0.03 Pixel.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Eingabebild, in dem das Pattern gefunden werden soll.
Maximale mittlere Differenz der Grauwerte.
Defaultwert: 20.0
Wertevorschläge: 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
Typischer Wertebereich: 0
≤
MaxError
MaxError
MaxError
MaxError
MaxError
maxError
≤
255
Minimale Schrittweite: 1
Empfohlene Schrittweite: 3
Subpixel Genauigkeit falls 'true'"true""true""true""true""true".
Defaultwert:
'false'
"false"
"false"
"false"
"false"
"false"
Werteliste: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"
Zeilenposition des Best-Match.
Spaltenposition des Best-Match.
Mittlere Abweichung der Grauwerte des Best-Match.
Sind die Parameterwerte korrekt, dann liefert best_matchbest_matchBestMatchbest_matchBestMatchBestMatch
den Wert 2 (H_MSG_TRUE).
Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt
sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
create_templatecreate_templateCreateTemplatecreate_templateCreateTemplateCreateTemplate,
read_templateread_templateReadTemplateread_templateReadTemplateReadTemplate,
set_offset_templateset_offset_templateSetOffsetTemplateset_offset_templateSetOffsetTemplateSetOffsetTemplate,
set_reference_templateset_reference_templateSetReferenceTemplateset_reference_templateSetReferenceTemplateSetReferenceTemplate,
adapt_templateadapt_templateAdaptTemplateadapt_templateAdaptTemplateAdaptTemplate,
draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion,
draw_rectangle1draw_rectangle1DrawRectangle1draw_rectangle1DrawRectangle1DrawRectangle1,
reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain
fast_matchfast_matchFastMatchfast_matchFastMatchFastMatch,
fast_match_mgfast_match_mgFastMatchMgfast_match_mgFastMatchMgFastMatchMg,
best_match_mgbest_match_mgBestMatchMgbest_match_mgBestMatchMgBestMatchMg,
best_match_pre_mgbest_match_pre_mgBestMatchPreMgbest_match_pre_mgBestMatchPreMgBestMatchPreMg,
best_match_rotbest_match_rotBestMatchRotbest_match_rotBestMatchRotBestMatchRot,
best_match_rot_mgbest_match_rot_mgBestMatchRotMgbest_match_rot_mgBestMatchRotMgBestMatchRotMg,
exhaustive_matchexhaustive_matchExhaustiveMatchexhaustive_matchExhaustiveMatchExhaustiveMatch,
exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg
Matching