Template matching
Il template matching o Segmentazione basata dal riscontro sul modello è una tecnica utilizzata nell'elaborazione digitale delle immagini per trovare piccole parti di un'immagine che corrispondano con una immagine-modello.
Può essere usato nella produzione come parte del controllo di qualità, una maniera per il movimento dei robot ambulanti o come modo per rilevare contorni in una immagine.
Vi sono due approcci: Riscontro basato sul modello (template base matching) o sulla caratteristica (feature based matching). Il primo usa l'intera immagine-modello sommando/comparando varie metriche (SAD, SSD, correlazione incrociata, ...) per determinare la miglior posizione; il secondo usa una caratteristica della immagine-modello come contorni o angoli come prima misura per trovare il miglior riscontro locale nell'immagine-sorgente.
Implementazione
In questa semplice implementazione, si assume che il metodo sopra descritto è applicato con immagini grigie.
// Initialize minSAD to a large value, indicating that we want to find the minimum Sum of Absolute Differences (SAD) minSAD = VALUE_MAX; // Loop through the search image for (int x = 0; x <= S_rows - T_rows; x++) { for (int y = 0; y <= S_cols - T_cols; y++) { // Initialize SAD (Sum of Absolute Differences) for this position SAD = 0.0; // Loop through the template image for (int i = 0; i < T_rows; i++) { for (int j = 0; j < T_cols; j++) { // Get the pixel values from the search image and the template image pixel p_SearchIMG = S[x + i][y + j]; pixel p_TemplateIMG = T[i][j]; // Compute the absolute difference of grayscale values and add to SAD SAD += abs(p_SearchIMG.Grey - p_TemplateIMG.Grey); } } // Save the best found position if the current SAD is smaller than the minimum SAD found so far if (minSAD > SAD) { minSAD = SAD; // Save the position with the lowest SAD position.bestRow = x; position.bestCol = y; position.bestSAD = SAD; } } }
Una maniera di eseguire il template matching su immagini a colori è di decomporre i pixel nelle loro componenti e misurare la qualità del riscontro tra il colore-modello e l'immagine-sorgente usando la somma del SAD calcolato per ogni colore separatamente.
Voci correlate
- Computer vision
Collegamenti esterni
- (EN) Template Matching in OpenCV, su mygeeksite.in. URL consultato il 15 ottobre 2012 (archiviato dall'url originale il 2 ottobre 2012).
- (EN) Template Matching, su rkb.home.cern.ch. URL consultato il 15 ottobre 2012 (archiviato dall'url originale il 23 dicembre 2007).
- (EN) Visual Object Recognition usando Template Matching (PDF), su araa.asn.au.
- (EN) Programma dimostrativo di template matching Rotazione, scala, translation-invariant, su lps.usp.br.
- (EN) template matching invariante alla prospettiva, su campar.in.tum.de.
Controllo di autorità | LCCN (EN) sh2006005651 · J9U (EN, HE) 987007530528905171 |
---|