Insieme con la correlazione, costituisce il legame essenziale tra il dominio spaziale e il dominio della frequenza, oltre che la base di molti algoritmi di image processing.
Date due funzioni continue 1D, f(x) e g(x), la loro convoluzione è definita da:
dove α è una variabile di comodo per l’integrazione.
A titolo di esempio, consideriamo le due funzioni in figura.
Prima dell’integrazione, occorre costruire la g(x-α). A tal fine, bisogna ribaltare g(α) rispetto all’origine, in modo da ottenere g(-α), e quindi traslare la funzione così ottenuta di una quantità x.
A questo punto, per ciascun valore di x, f(α) deve essere moltiplicata per il corrispondente valore di g(x-α), ed infine il prodotto così ottenuto (area grigia nelle figure) deve essere integrato.
Per x interno all’intervallo [0,1], il prodotto è 0 per a esterno all’intervallo [0,x]. Il risultato dell’integrazione è quindi x/2 per 0 ≤ x ≤ 1. Invece, per x interno all’intervallo [1,2], il risultato è 1 – x/2. Infine, il prodotto è 0 per x esterno all’intervallo [0,2].
È importante analizzare il caso particolare della convoluzione di una f(x) con funzioni di tipo impulsivo.
L’impulso δ(x-x0) è definito dalla relazione:
E può essere considerato come avente area unitaria in un intorno infinitesimo di x0 e area nulla altrove. Cioè:
Si può dire pertanto che δ(x-x0) è localizzato in x = x0, e che l’ampiezza dell’impulso è determinata dal valore di f(x) in x = x0.
Se per esempio f(x) = A, Aδ(x-x0) è un impulso di ampiezza A localizzato in x = x0.
Un esempio interessante di convoluzione è quella tra una funzione f(x) e un treno di impulsi. In questo caso, il risultato è la replica della f(x) nei punti di localizzazione degli impulsi.
La convoluzione discreta di fe(x) e ge(x) è così definita:
per x = 0,1, …, M-1
Nel caso 2D, la convoluzione di due funzioni continue, f(x,y) e g(x,y), è definita come:
La formulazione della convoluzione 2D discreta assume che f(x,y) e g(x,y) siano due array discreti di dimensione A x B e C x D, rispettivamente.
La convoluzione 2D discreta di fe(x,y) e ge(x,y) è così definita:
per x = 0, 1, …, M-1 e y = 0, 1, …, N-1
Se effettuiamo la convoluzione tra una funzione rumorosa e un impulso rettangolare di larghezza finita, per ogni valore di x viene in pratica effettuate una media locale su un intervallo di ampiezza unitaria.
Questa operazione sopprime le oscillazioni rapide ovvero i dettagli, cioè le componenti di alta frequenza del segnale, mantenendone la forma, cioè le componenti di bassa frequenza.
Quindi possiamo considerare la g(x) come un filtro passa-basso: in pratica ha effettuato lo smoothing della funzione rumorosa.
Consideriamo il caso in cui la f(x) rappresenta una transizione piuttosto lenta, tipicamente un contorno o un edge, e la g(x), invece, presenta un lobo centrale positivo e due laterali negativi.
La convoluzione tra queste funzioni ha come risultato una funzione che mostra una pendenza maggiore di quella della f(x), con una evidenziazione delle componenti di alta frequenza del segnale, e una sovraelongazione (ringing) sui due lati dell’edge.
Quindi la g(x) ha il comportamento tipico di un filtro passa-alto: in pratica ha effettuato lo sharpening della f(x).
La definizione di convoluzione discreta:
ricorda da vicino l’operazione di una maschera spaziale, la cui uscita in ogni punto dell’immagine, come è noto, vale:
Infatti l’espressione ge(x-m, y-n) per ogni coppia di coordinate (x,y) in cui va calcolato il valore dell’uscita g, indica che rispetto agli assi m e n la h deve essere ribaltata e poi traslata di x posizioni lungo m e di y posizioni lungo n.
Successivamente i valori della f vengono moltiplicati per quelli della h ribaltata e traslata, e la loro somma così “pesata” contribuisce al valore dell’uscita g. Naturalmente si sommano solo i termini corrispondenti agli indici per i quali il prodotto è diverso da zero, per esempio nove per una maschera 3 x 3 per ogni coppia (x,y).
La sola differenza tra l’operazione di convoluzione e quella di filtraggio spaziale precedentemente definita sta nel fatto che quest’ultima non prevede il ribaltamento.
Date due funzioni continue 1D, f(x) e g(x), la loro correlazione è definita da (vedi figura) dove α è una variabile di comodo per l’integrazione e f* è la complessa coniugata di f.
La differenza con la convoluzione è che la g(x) non è ribaltata attorno all’origine. Pertanto il calcolo della correlazione richiede, per ciascun valore di x, solo lo scorrimento di g(x) rispetto a f(x) e l’integrazione del prodotto così ottenuto.
Le due operazioni coincidono se la maschera è simmetrica rispetto al suo punto centrale, come avviene per la maggior parte dei filtri adoperati per il miglioramento della qualità.
Per i motivi suddetti le maschere spaziali sono anche dette maschere di convoluzione.
La convoluzione può essere effettuata utilizzando i seguenti metodi:
L’oggetto w(s,t) è una matrice rettangolare di numeri.
La matrice è la finestra mobile.
Il pixel (x,y) nell’immagine di output è la somma pesata dei pixel dell’immagine originale nell’intorno di (x, y) indicati dalla matrice.
Ogni pixel nell’intorno di (x, y) è moltiplicato per il corrispondente valore della matrice — dopo che la matrice è stata ruotata di 180º.
La somma di questi prodotti è il valore del pixel (x, y) nell’immagine di output.
L’immagine è copiata 1 volta per ogni elemento della maschera di convoluzione.
Ogni copia è shiftata rispetto all’originale per lo spostamento associato all’elemento della maschera.
Ogni copia è moltiplicata per il valore del suo elemento della maschera associato.
L’insieme delle immagini shiftate e moltiplicate è sommato pixel per pixel.
2. Digital Imaging Processing: Introduzione
4. Immagini Digitali - parte prima
5. Immagini Digitali - parte seconda
6. Dicom
7. Trasformazioni di Intensità
8. Convoluzione e Correlazione
9. Filtraggio nel Dominio Spaziale - parte prima
10. Filtraggio nel Dominio Spaziale - parte seconda
11. Trasformazioni Geometriche
14. Filtraggio nel Dominio delle Frequenze
16. Region Growing
17. Image Registration - parte prima
18. Image Registration - parte seconda
19. Computed Tomography - parte prima