exhaustive_match_mg
— Matching zwischen einem Template und einem Bild in einer
Auflösungspyramide.
exhaustive_match_mg(Image, ImageTemplate : ImageMatch : Mode, Level, Threshold : )
exhaustive_match_mg
ist eine Ergänzung zum Operator
exhaustive_match
, die ein Matching zwischen dem Bild
Image
und dem Template ImageTemplate
durchführt.
Dabei wird ImageTemplate
über alle Punkte der Region von
Image
geschoben, abhängig vom Parameter Mode
ein Matching-Kriterium berechnet und die Ergebniswerte in
ImageMatch
abgelegt.
In der Regel interessieren von solcherart gefilterten Bildern aber nur
die Bereiche mit guten Matchingergebnissen. Die Größe des Suchbereichs,
also die Region des Eingabebildes Image
, bestimmt maßgeblich das
Laufzeitverhalten des Matching-Filters. Daher wird bei
exhaustive_match_mg
mit reduzierter Bildauflösung
zunächst eine „region of interest“ bestimmt,
in der mit guten Matching-Ergebnissen zu rechnen ist, und im Anschluss
daran nur innerhalb dieser Teilregion in normaler Auflösung das
eigentliche Matching (vgl. exhaustive_match
)
durchgeführt. Dazu werden die Gauß-Pyramiden von Image
und ImageTemplate
aufgebaut (insbesondere werden auch die
entsprechenden Regionen mittransformiert). Dann wird auf jeder Ebene
der Auflösungspyramiden - beginnend mit der Startebene
Level
- das Matching innerhalb der aktuellen „region of
interest“ ausgeführt. Dabei ist die „region of interest“
im Startlevel gleich der Region des Eingabebildes Image
.
Nach der Filterung wird mittels einer Schwellenwert-Operation eine neue
„region of interest“ bestimmt und auf die nächste Auflösungsstufe
transformiert:
threshold(...:...:0,Threshold,...:), falls Mode = 'dfd' threshold(...:...:Threshold,255,...:), falls Mode = 'norm_correlation'
In höchster Auflösung (Level
0) wird dann schließlich das
abschließende Matching in der ermittelten „region of interest“ berechnet.
Das Ausgabebild ImageMatch
enthält das entsprechende
Filterergebnis und als Region die endgültige „region of interest“,
die mit einer Schwellenwert-Operation auf dem Ergebnisbild bestimmt wird.
exhaustive_match_mg
ist daher kein reiner Filter,
sondern ist auch zur Klasse der Regionentransformationen zu zählen.
Image
(input_object) singlechannelimage(-array) →
object (byte)
Eingabebild.
ImageTemplate
(input_object) singlechannelimage →
object (byte)
Der Definitionsbereich dieses Bildes wird mit
Image
„gematcht“.
ImageMatch
(output_object) image(-array) →
object (byte)
Ergebnisbild und -region: Werte des Matching-Kriteriums innerhalb der ermittelten „region of interest“.
Parameteranzahl: ImageMatch == Image
Mode
(input_control) string →
(string)
Gewünschtes Matching-Kriterium.
Defaultwert: 'dfd'
Werteliste: 'dfd' , 'norm_correlation'
Level
(input_control) integer →
(integer)
Startlevel in der Auflösungspyramide (höchste Auflösung: Level 0).
Defaultwert: 1
Wertevorschläge: 0, 1, 2, 3, 4, 5, 6, 7, 8
Restriktion: Level <= ld(width(Image)) && Level <= ld(height(Image)) && Level <= ld(width(ImageTemplate)) && Level <= ld(height(ImageTemplate))
Threshold
(input_control) integer →
(integer)
Schwelle zur Bestimmung der „region of interest“.
Defaultwert: 30
Wertevorschläge: 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250
Typischer Wertebereich: 0
≤
Threshold
≤
255
Minimale Schrittweite: 1
Empfohlene Schrittweite: 5
read_image(&Image,"monkey"); disp_image(Image,WindowHandle); draw_rectangle2(WindowHandle,&Row,&Column,&Phi,&Length1,&Length2); gen_rectangle2(&Rectangle,Row,Column,Phi,Length1,Length2); reduce_domain(Image,Rectangle,&Template); exhaustive_match_mg(Image,Template,&ImageMatch,'dfd'1,30); invert_image(ImageMatch,&ImageInvert); local_max(ImageInvert,&BestFit); disp_region(BestFit,WindowHandle);
Sind die Parameterwerte korrekt, dann liefert exhaustive_match_mg
den Wert 2 (H_MSG_TRUE).
Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt
sich mittels set_system('no_object_result',<Result>)
festlegen.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Foundation