| Operatoren |
create_template — Aufbereiten eines Musters für Template Matching. Neue Applikationen sollten stattdessen die Form-basierten oder NCC-basierten Operatoren verwenden.
create_template ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt.
create_template(Template : : FirstError, NumLevel, Optimize, GrayValues : TemplateID)
create_template bereitet ein Muster (Template), das als Bild übergeben wird, für das Template Matching vor. Dem Template wird nach der Transformation eine Nummer zugewiesen (TemplateID), die bei der weiteren Verarbeitung verwendet wird. Die Form und Größe von Template sind beliebig. Es ist jedoch zu beachten, dass das Matching nur in dem Teil des Bildes ausgeführt wird, in dem Template vollständig hineinpasst.
Das Template sollte so gewählt werden, dass keine Grauwerte des Hintergrundes enthalten sind. Hierbei kann ausgenutzt werden, dass die Form des Template nicht auf Rechtecke beschränkt ist. Zu Gewinnung der Templateregion können Segmentierungsoperatoren wie threshold oder die draw_* Operatoren verwendet werden. Soll die Position des Templates später mit sub-Pixel-Genauigkeit bestimmt werden, dann muss Template zusätzlich um ein Pixel kleiner sein als das eigentliche Muster. Die kann z.B. mit dem Operator erosion_circle realsiert werden.
Der Parameter NumLevel gibt die Anzahl der Pyramidenebenen an (NumLevel = 1 bedeutet, dass nur die Originalgrauwerte verwendet werden), die beim Matching maximal verwendet werden können. Die Anzahl kann bei Matching aber kleiner sein als dieser Wert. Falls das Template durch das Verkleinern zu klein wird, reduziert sich die maximale Anzahl von Pyramidenstufen automatisch (ohne Fehlermeldung!).
Der Parameter GrayValues legt fest, ob die Originalgrauwerte ('original' bzw. 'normalized') oder die Kantenamplitude ('gradient' bzw. 'sobel') verwendet werden soll. Bei 'original' wird die Summe der Differenzen als Merkmal verwendet. Dieses Verfahren ist abhängig von der Beleuchtung. Bei 'normalized' wird die normierte Summe der Differenzen verwendet. Dieses Merkmal ist unabhängig von additiven Grauwertänderungen. Es ist etwas langsamer und nicht ganz so stabil. Wenn auch multiplikative Grauwertänderungen auftreten, sollte das Matching mittels normalisierter Kreuzkorrelation (normalized cross correlation, NCC) verwendet werden (create_ncc_model). Falls die Grauwerte sich nicht ändern ist 'original' vorzuziehen. Die Kantenamplitude ist eine weitere Methode unabhängig von der Beleuchtung zu sein. Der Nachteil ist die höhere Laufzeit und eine stärkere Abhängigkeit gegenüber Formänderungen. Der Modus 'gradient' ist etwas schneller aber auch empfindlicher gegen Rauschen. Der maximale Fehler beim Matching muss bei der Kantenamplitude typischerweise größer gewählt werden. Als Alternative zu den Gradientenverfahren kann der Operator set_offset_template verwendet werden, falls die Beleuchtungsänderung bekannt ist.
Der Parameter Optimize legt fest ob das Template für eine schnellere Verarbeitung zusätzlich optimiert wird. Dies verlangsamt die Erzeugung des Templates, verkürzt aber das Matching. Zusätzlich wird durch die Optimierung das Matching stabiler, d.h. der Verlust eines korrekten Matches wird unwahrscheinlicher.
Als Referenzwert für das Matching wird der Schwerpunkt verwendet. D.h. wenn man das Template auf das Originalbild anwendet, wird der Schwerpunkt zurückgegeben. Diese Voreinstellung kann mit set_reference_template angepasst werden.
Im sub-Pixel Modus wird eine zusätzliche Positionskorrektur verwendet: Das Template wird auf die Originaldaten angewandt und die hierbei entstehende Abweichung der gefundenen Position vom Schwerpunkt wird als Korrekturvektor mit verwendet. Dies ist für Muster, die in einem konstrastreichen Kontext liegen von Bedeutung. Bei den meisten Mustern ist dieser Korrekturvektor Null.
Das Pattern muss nach Gebrauch mit clear_template gelöscht werden um den Speicher wieder freizugeben. Vor der Verwendung kann das Template, das bildformatunabhängig gespeichert ist, noch mit adapt_template auf die Größe eines konkreten Bildes angepasst werden.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Eingabebild, dessen Definitionsbereich für das Pattern Matching aufbereitet wird.
Noch nicht verwendet.
Defaultwert: 255
Werteliste: 255
Maximale Anzahl von Pyramidenebenen.
Defaultwert: 4
Werteliste: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Art der Optimierung.
Defaultwert: 'sort'
Werteliste: 'none', 'sort'
Art der Grauwerte.
Defaultwert: 'original'
Werteliste: 'gradient', 'normalized', 'original', 'sobel'
Nummer des Templates.
Sind die Parameterwerte korrekt, dann liefert create_template den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
draw_region, reduce_domain, threshold
adapt_template, set_reference_template, clear_template, write_template, set_offset_template, best_match, best_match_mg, fast_match, fast_match_mg
create_ncc_model, create_template_rot, read_template
Matching
| Operatoren |