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:

  1. Si sovrappone il kernel a una regione della stessa dimensione nell’immagine.
  2. Si calcola il prodotto tra ogni valore del kernel e il valore corrispondente nel blocco di pixel.
  3. 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

  1. Sfocatura di un’immagine rumorosa:
    • Usa il filtro gaussiano.
  2. Rilevamento dei bordi:
    • Usa il filtro Sobel o Laplaciano.
  3. Rimozione di rumore sale e pepe:
    • Usa il filtro mediano.