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 modifica

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 modifica

Collegamenti esterni modifica

Controllo di autoritàLCCN (ENsh2006005651 · J9U (ENHE987007530528905171