KlassenKlassenKlassenKlassen | | | | Operatoren

exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg (Operator)

Name

exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg — Matching zwischen einem Template und einem Bild in einer Auflösungspyramide.

Signatur

exhaustive_match_mg(Image, ImageTemplate : ImageMatch : Mode, Level, Threshold : )

Herror exhaustive_match_mg(const Hobject Image, const Hobject ImageTemplate, Hobject* ImageMatch, const char* Mode, const Hlong Level, const Hlong Threshold)

Herror T_exhaustive_match_mg(const Hobject Image, const Hobject ImageTemplate, Hobject* ImageMatch, const Htuple Mode, const Htuple Level, const Htuple Threshold)

Herror exhaustive_match_mg(Hobject Image, Hobject ImageTemplate, Hobject* ImageMatch, const HTuple& Mode, const HTuple& Level, const HTuple& Threshold)

HImage HImage::ExhaustiveMatchMg(const HImage& ImageTemplate, const HTuple& Mode, const HTuple& Level, const HTuple& Threshold) const

HImageArray HImageArray::ExhaustiveMatchMg(const HImage& ImageTemplate, const HTuple& Mode, const HTuple& Level, const HTuple& Threshold) const

void ExhaustiveMatchMg(const HObject& Image, const HObject& ImageTemplate, HObject* ImageMatch, const HTuple& Mode, const HTuple& Level, const HTuple& Threshold)

HImage HImage::ExhaustiveMatchMg(const HImage& ImageTemplate, const HString& Mode, Hlong Level, Hlong Threshold) const

HImage HImage::ExhaustiveMatchMg(const HImage& ImageTemplate, const char* Mode, Hlong Level, Hlong Threshold) const

void HOperatorSetX.ExhaustiveMatchMg(
[in] IHUntypedObjectX* Image, [in] IHUntypedObjectX* ImageTemplate, [out] IHUntypedObjectX*ImageMatch, [in] VARIANT Mode, [in] VARIANT Level, [in] VARIANT Threshold)

IHImageX* HImageX.ExhaustiveMatchMg(
[in] IHImageX* ImageTemplate, [in] BSTR Mode, [in] Hlong Level, [in] Hlong Threshold)

static void HOperatorSet.ExhaustiveMatchMg(HObject image, HObject imageTemplate, out HObject imageMatch, HTuple mode, HTuple level, HTuple threshold)

HImage HImage.ExhaustiveMatchMg(HImage imageTemplate, string mode, int level, int threshold)

Beschreibung

exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg ist eine Ergänzung zum Operator exhaustive_matchexhaustive_matchExhaustiveMatchexhaustive_matchExhaustiveMatchExhaustiveMatch, die ein Matching zwischen dem Bild ImageImageImageImageImageimage und dem Template ImageTemplateImageTemplateImageTemplateImageTemplateImageTemplateimageTemplate durchführt. Dabei wird ImageTemplateImageTemplateImageTemplateImageTemplateImageTemplateimageTemplate über alle Punkte der Region von ImageImageImageImageImageimage geschoben, abhängig vom Parameter ModeModeModeModeModemode ein Matching-Kriterium berechnet und die Ergebniswerte in ImageMatchImageMatchImageMatchImageMatchImageMatchimageMatch 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 ImageImageImageImageImageimage, bestimmt maßgeblich das Laufzeitverhalten des Matching-Filters. Daher wird bei exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg 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_matchexhaustive_matchExhaustiveMatchexhaustive_matchExhaustiveMatchExhaustiveMatch) durchgeführt. Dazu werden die Gauß-Pyramiden von ImageImageImageImageImageimage und ImageTemplateImageTemplateImageTemplateImageTemplateImageTemplateimageTemplate aufgebaut (insbesondere werden auch die entsprechenden Regionen mittransformiert). Dann wird auf jeder Ebene der Auflösungspyramiden - beginnend mit der Startebene LevelLevelLevelLevelLevellevel - das Matching innerhalb der aktuellen „region of interest“ ausgeführt. Dabei ist die „region of interest“ im Startlevel gleich der Region des Eingabebildes ImageImageImageImageImageimage. 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 (LevelLevelLevelLevelLevellevel 0) wird dann schließlich das abschließende Matching in der ermittelten „region of interest“ berechnet. Das Ausgabebild ImageMatchImageMatchImageMatchImageMatchImageMatchimageMatch 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_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg ist daher kein reiner Filter, sondern ist auch zur Klasse der Regionentransformationen zu zählen.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage(-array) objectHImageHImageHImageHImageXHobject (byte)

Eingabebild.

ImageTemplateImageTemplateImageTemplateImageTemplateImageTemplateimageTemplate (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte)

Der Definitionsbereich dieses Bildes wird mit ImageImageImageImageImageimage „gematcht“.

ImageMatchImageMatchImageMatchImageMatchImageMatchimageMatch (output_object)  image(-array) objectHImageHImageHImageHImageXHobject * (byte)

Ergebnisbild und -region: Werte des Matching-Kriteriums innerhalb der ermittelten „region of interest“.

Parameteranzahl: ImageMatch == Image

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Gewünschtes Matching-Kriterium.

Defaultwert: 'dfd' "dfd" "dfd" "dfd" "dfd" "dfd"

Werteliste: 'dfd'"dfd""dfd""dfd""dfd""dfd", 'norm_correlation'"norm_correlation""norm_correlation""norm_correlation""norm_correlation""norm_correlation"

LevelLevelLevelLevelLevellevel (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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))

ThresholdThresholdThresholdThresholdThresholdthreshold (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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 Threshold Threshold Threshold Threshold threshold ≤ 255

Minimale Schrittweite: 1

Empfohlene Schrittweite: 5

Beispiel (C)

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);

Ergebnis

Sind die Parameterwerte korrekt, dann liefert exhaustive_match_mgexhaustive_match_mgExhaustiveMatchMgexhaustive_match_mgExhaustiveMatchMgExhaustiveMatchMg 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.

Vorgänger

draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion, draw_rectangle1draw_rectangle1DrawRectangle1draw_rectangle1DrawRectangle1DrawRectangle1

Nachfolger

thresholdthresholdThresholdthresholdThresholdThreshold, local_maxlocal_maxLocalMaxlocal_maxLocalMaxLocalMax

Alternativen

exhaustive_matchexhaustive_matchExhaustiveMatchexhaustive_matchExhaustiveMatchExhaustiveMatch

Siehe auch

gen_gauss_pyramidgen_gauss_pyramidGenGaussPyramidgen_gauss_pyramidGenGaussPyramidGenGaussPyramid

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren