7 – Filtri, panoramica teorica
1. Cosa sono i filtri di elaborazione dell’immagine?
I filtri di elaborazione dell’immagine sono strumenti matematici che operano su una matrice di pixel (l’immagine) per modificarne il contenuto o estrarre informazioni utili. Si applicano generalmente a immagini digitali per migliorare la qualità, estrarre dettagli, o applicare effetti.
Un filtro può:
- Modificare la luminosità o il contrasto.
- Ridurre il rumore.
- Evidenziare bordi o contorni.
- Applicare effetti speciali come sfocature o rilievi.
2. Tipi di filtri principali
I filtri possono essere classificati in due categorie principali: spaziali e frequenziali. Qui ci concentriamo sui filtri spaziali, i più comuni.
2.1 Filtri spaziali
Operano direttamente sui pixel dell’immagine, spesso tramite una maschera (o kernel), che è una matrice di numeri (3×3, 5×5, ecc.) applicata a ogni pixel per calcolarne il nuovo valore.
3. Come funzionano i filtri?
3.1 Applicazione del kernel
Il filtro si applica spostando la maschera su ogni pixel dell’immagine. Per ogni posizione:
- Si sovrappone il kernel a una regione della stessa dimensione nell’immagine.
- Si calcola il prodotto tra ogni valore del kernel e il valore corrispondente nel blocco di pixel.
- Si sommano i risultati (o si applica una funzione) e si sostituisce il pixel centrale con il valore ottenuto.
3.2 Padding
Per gestire i bordi dell’immagine (dove la maschera non può essere completamente sovrapposta), si usa il padding, che può essere:
- Zero-padding: Si riempie la zona esterna con zeri.
- Replicativo: Si replica il valore del bordo.
4. Tipi di filtri comuni
4.1 Filtri di smoothing (sfocatura)
Utilizzati per ridurre il rumore o creare un effetto di sfocatura.
- Filtro medio (Mean Filter):
- Kernel: 19[111111111]\frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \\ \end{bmatrix}
- Calcola la media dei pixel in una finestra 3×3.
- Filtro gaussiano:
- Kernel basato su una funzione gaussiana, dando maggiore peso ai pixel centrali. Migliore per sfocature naturali.
4.2 Filtri di sharpening (miglioramento del dettaglio)
Evidenziano i bordi e migliorano i dettagli.
- Filtro Laplaciano:
- Kernel tipico: [0−10−14−10−10]\begin{bmatrix} 0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \\ \end{bmatrix}
- Evidenzia le aree dove il contrasto cambia rapidamente.
- Filtro Sobel:
- Usato per il rilevamento dei bordi.
- Kernels (orizzontale e verticale): Gx=[−101−202−101]Gy=[−1−2−1000121]G_x = \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \\ \end{bmatrix} \quad G_y = \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \\ \end{bmatrix}
4.3 Filtri di riduzione del rumore
Riducono il rumore mantenendo il dettaglio.
- Filtro mediano:
- Ordina i valori dei pixel in una finestra e sostituisce il pixel centrale con il valore mediano.
- Efficace contro il rumore impulsivo (sale e pepe).
6. Esempi pratici
- Sfocatura di un’immagine rumorosa:
- Usa il filtro gaussiano.
- Rilevamento dei bordi:
- Usa il filtro Sobel o Laplaciano.
- Rimozione di rumore sale e pepe:
- Usa il filtro mediano.