Matrice di convoluzione

Niente fonti!
Questa voce o sezione sull'argomento informatica non cita le fonti necessarie o quelle presenti sono insufficienti.

Nell'elaborazione digitale delle immagini, una matrice di convoluzione, kernel (nucleo in inglese), o maschera è una piccola matrice usata per applicare filtri ad immagini. Risulta dunque utile per la sfocatura, affilatura, goffratura, riconoscimento dei contorni e altro ancora.

Attraverso l'applicazione della convoluzione di due matrici bidimensionali di cui la prima rappresenta l'immagine originale e la seconda, detta kernel, rappresenta il filtro da applicare. Le matrici kernel sono soprattutto di dimensione dispari, in quanto nella convoluzione è importante identificare il centro della matrice kernel, cosa che avviene facilmente con dimensioni dispari; per esempio, possono essere di dimensione 3x3, 5x5, 7x7, e così via. Difficilmente le matrici kernel sono di grandi dimensioni.

Principio di funzionamento

Convoluzione matematica

Consideriamo la matrice A che rappresenta la matrice contenente i valori di grigio di tutti i pixel dell'immagine originale e la matrice B che rappresenta la matrice kernel. Sovrapponiamo la matrice B alla matrice A in modo che il centro della matrice B sia in corrispondenza del pixel della matrice A da elaborare.

Il valore di ciascun pixel della matrice A oggetto di elaborazione viene ricalcolato come la somma pesata dei prodotti di ciascun elemento della matrice kernel con il corrispondente pixel della matrice A sottostante.

Esempi

Questi sono alcuni esempi degli effetti ottenibili dalla convoluzione con diversi kernel.

Originale [ 0 0 0 0 1 0 0 0 0 ] {\displaystyle {\begin{bmatrix}0&0&0\\0&1&0\\0&0&0\end{bmatrix}}}
Edge-Detect [ 1 0 1 0 0 0 1 0 1 ] {\displaystyle {\begin{bmatrix}1&0&-1\\0&0&0\\-1&0&1\end{bmatrix}}}
[ 0 1 0 1 4 1 0 1 0 ] {\displaystyle {\begin{bmatrix}0&1&0\\1&-4&1\\0&1&0\end{bmatrix}}}
[ 1 1 1 1 8 1 1 1 1 ] {\displaystyle {\begin{bmatrix}-1&-1&-1\\-1&8&-1\\-1&-1&-1\end{bmatrix}}}
Sharpen [ 0 1 0 1 5 1 0 1 0 ] {\displaystyle {\begin{bmatrix}0&-1&0\\-1&5&-1\\0&-1&0\end{bmatrix}}}
Blur [ 1 2 1 2 4 2 1 2 1 ] {\displaystyle {\begin{bmatrix}1&2&1\\2&4&2\\1&2&1\end{bmatrix}}}
[ 1 1 1 1 1 1 1 1 1 ] {\displaystyle {\begin{bmatrix}1&1&1\\1&1&1\\1&1&1\end{bmatrix}}}
  Portale Informatica
  Portale Matematica