<< MaskFilter IPD - Image Processing Design MedianFilter >>

IPD - Image Processing Design >> IPD - Image Processing Design > MatchTemplate

MatchTemplate

berechnet die Ähnlichkeit zwischen einem Bild und einem Musterbild

Aufruf

Aehnlichkeit = MatchTemplate(Quellbild, Musterbild, Methode);

Parameter

Quellbild

2D-Matrix vom Typ uint8

Musterbild

2D-Matrix vom Typ uint8, darf nicht mehr Zeilen oder Spalten haben als Quellbild

Methode

Konstante vom Typ uint8, folgende Werte sind möglich:

  • MATCH_LEAST_SQUARES: Summe der quadratischen Differenzen zwischen den Grauwerten der Pixel von Quell- und Musterbild

  • MATCH_CORRELATION: Korrelation zwischen Musterbild und Umgebung von Mittelpunkt des Musterbildes im Quellbild

  • MATCH_LEAST_SQUARES_NORM: normalisierte Summe der quadratischen Differenzen zwischen den Grauwerten der Pixel von Quell- und Musterbild

  • MATCH_CORRELATION_NORM: normalisierte Korrelation zwischen Musterbild und Umgebung von Mittelpunkt des Musterbildes im Quellbild

Aehnlichkeit

2D-Matrix vom Typ double

Beschreibung

Diese Funktion berechnet die Ähnlichkeit zwischen einem Bild und einem Musterbild. Das Musterbild läuft über das Quellbild. Ein Maß der Ähnlichkeit zwischen dem Musterbild und dem davon abgedeckten Ausschnitt des Quellbildes wird berechnet. Das Musterbild ragt dabei nicht über das Quellbild hinaus. Daher ist die resultierende Matrix kleiner als das Quellbild.

Beispiel

global MATCH_CORRELATION_NORM;

global IPD_PATH;

QuellbildFarbe = ReadImage(IPD_PATH + 'demos\teaset.png');

Quellbild = RGB2Gray(QuellbildFarbe);

MusterbildFarbe = ReadImage(IPD_PATH + 'demos\cropped_image.png');

Musterbild = RGB2Gray(MusterbildFarbe);

Aehnlichkeit = MatchTemplate(Quellbild, Musterbild, MATCH_CORRELATION_NORM);
                      
BesteUebereinstimmung = FindBestMatches(Aehnlichkeit, size(Musterbild), MATCH_CORRELATION_NORM);
                            
Markierung = list();
                            
for n = 1 : size(BesteUebereinstimmung, 1)
  
 Markierung($ + 1) = struct('BoundingBox', cat(2, BesteUebereinstimmung(n, :) - [1 1], [3 3])');
  
end;                            

QuellbildFenster = figure();
                            
ShowColorImage(QuellbildFarbe, 'Bild mit markierten Positionen der besten Übereinstimmung');

DrawBoundingBoxes(Markierung, [0 1 0], QuellbildFenster);

MusterbildFenster = figure();

ShowColorImage(MusterbildFarbe, 'Musterbild');

Siehe auch

<< MaskFilter IPD - Image Processing Design MedianFilter >>