Nelle immagini satellitari di telerilevamento, la variazione dell’illuminazione durante il giorno produce immagini a basso contrasto. L’equalizzazione dell’istogramma viene applicata automaticamente su satelliti come il Landsat per redistribuire i toni, rivelando dettagli di vegetazione, rilievo e aree urbane invisibili nell’immagine originale.
Vedere in Figura 3.29 una simulazione di questo EP.
3.12.4.1 📋 Linee guida di implementazione
Dimensioni: Leggere gli interi \(L\) (righe), \(C\) (colonne) e \(B\) (numero di bit, con \(L_{\max} = 2^B\)).
Dati: Leggere la matrice di pixel \(f\) con valori in \([0, 2^B - 1]\).
Istogramma: Calcolare \(h[k]\) = numero di pixel con intensità \(k\), per \(k = 0 \ldots 2^B-1\).
Probabilità:\(p[k] = h[k] / (L \cdot C)\).
CDF:\(\text{cdf}[k] = \sum_{j=0}^{k} p[j]\); funzione di distribuzione cumulativa.
Scegli la profondità di bit (B) e genera immagini per analizzare la distribuzione dinamica dell'istogramma e la tabella di rimappatura (LUT) in tempo reale.
3 bit → 8 livelli
1 bit (2 livelli)4 bit (16 livelli)8 bit (256 livelli)
Input originale
Risultato equalizzato
Istogramma originale
Istogramma equalizzato
LUT (tabella di rimappatura k → v)
lut[k] = round(cdf[k] · 7) | B=3, livelli=8
Figura 3.29: Simulatore EP03_04: Equalizzazione dell’istogramma (Livelli L = 2^B)
%%writefile EP03_04.py# Codice Python
Overwriting EP03_04.py
TestSuite("EP03_04.py").run()
✔️ EP03_04.cases esiste già in casos/
📋 5 caso/i caricato/i da casos/EP03_04.cases
🔍 Test di Python: EP03_04.py
⚠️ EP03_04.py: file vuoto (meno di 3 righe). Test saltati.