3.2.1 Look Up Table (LUT)

Nelle LUT ogni colore o livello di grigio è memorizzato in una tabella insieme con il colore o il livello di grigio corrispondente. Gli operatori puntuali possono essere realizzati mediante look-up table (LUT). Tipicamente le schede di acquisizione mettono a disposizione delle LUT personalizzabili dall’utente che consentono la realizzazione in hardware di operatori puntuali.

Esempi di Look Up Table
Esempi di Look Up Table

3.2.2 Istogramma dei livelli di grigio

L’istogramma dei livelli di grigio di un’immagine é una funzione che associa
a ciascun livello il numero di pixel dell’immagine aventi quel livello di grigio. L’istogramma misura quindi la frequenza di occorrenza dei livelli di grigio dell’immagine.

i n t h i s t o [ 2 5 6 ] ;
. . .
f o r ( i n t i = 0 ; i < N; i ++){
   f o r ( i n t j = 0 ; j < M; j ++){
      k = Image [ i ] [ j ] ;
      h i s t o [ k ] = h i s t o [ k ]+1;
   }
}
Esempio del calcolo di istogramma
Esempio del calcolo di istogramma

Il calcolo dell’istogramma viene effettuato definendo un vettore di dimensione pari al numero dei livelli di grigio dell’immagine. Ciascun elemento del vettore rappresenta il contatore dei pixel aventi livello di grigio uguale all’indice dell’elemento. Quindi si scandisce l’immagine e si incrementa l’elemento del vettore avente indice pari al livello di grigio del pixel corrente.

3.2.3 Contrast Stretching

Questo operatore viene utilizzato per migliorare la qualità di immagini caratterizzate da debole contrasto. L’operatore migliora il contrasto dell’immagine espandendo la dinamica dei livelli di grigio su un intervallo più ampio.

Esempio di operazione con Contrast Stretching
Esempio di operazione con Contrast Stretching

Detti Gmin e Gmax i livelli di grigio minimo e massimo dell’immagine iniziale, viene utilizzata una funzione di mapping lineare per espandere la dinamica nell’intervallo desiderato [G’min, G’max]:

Tipicamente la dinamica viene espansa su tutto l’intervallo disponibile [0,255]:

La funzione di mapping precedentemente definita è poco robusta rispetto
alla eventuale presenza di pixel fuori range (livello di grigio molto basso o molto alto). Difatti l’intervallo [Gmin, Gmax] risulterà più esteso di quanto effettivamente necessario, riducendo l’effetto di miglioramento del contrasto. In questi casi di preferisce determinare Gmin e Gmax selezionando degli opportuni valori percentuali sull’istogramma dei livelli di grigio (ad esempio 5% e 95%).
Se l’operazione deve essere effettuata in tempo reale mediante look-up table su una sequenza di immagini, Gmin e Gmax non possono essere ricalcolati per ogni immagine. Di conseguenza, una volta determinati Gmin e Gmax a partire da un insieme rappresentativo di immagini, i valori dell’immagine corrente fuori dal range vengono trasformati negli estremi del’intervallo:

3.2.4 Equalizzazione dell’Istogramma

L’obiettivo dell’operazione di equalizzazione dell’istogramma è quello di ottenere un’immagine risultato avente un istogramma uniforme (piatto). Questa caratteristica generalmente implica un’espansione della dinamica dei livelli di grigio e quindi un incremento del contrasto, in pratica aumenta i contrasti vicino ai massimo e li diminuisce vicino ai minimi. La procedura di equalizzazione considera l’istogramma come un distribuzione di probabilità dei livelli di grigio ed esegue i seguenti passi:

  1. Calcolo dell’istogramma cumulativo
  2. Si dividono i valori ottenuti al passo 1 con il numero di pixel
  3. Si moltiplicano i valori ottenuti al passo 2 per il massimo livello di grigio
  4. Si mappano i livelli di grigio originali sui valori ottenuti al passo 3 con una corrispondenza 1 a 1.

In realtà una distribuzione perfettamente uniforme dei livelli di grigio non può essere ottenuta a causa della natura discreta delle grandezze trattate. Bisogna fare attenzione perché quando il contrasto originale dell’immagine è molto basso può provocare effetti di sgranatura o comparsa di false regioni.
In generale l’apparenza dell’immagine può essere migliorata anche con altre tecniche di modifica del contrasto, ma l’equalizzazione ha il vantaggio di essere del tutto automatica.

Esempio di equalizzazione di istogramma
Esempio di equalizzazione di istogramma

3.2.5 Modificare la luminosità

Variare la luminosità significa spostare l’istogramma verso il massimo o verso il minimo, questo può provocare effetti di saturazione verso gli estremi. Possiamo notare la variazione: la prima immagine sulla sinistra è quella originale, mentre l’altra è l’effetto di un aumento del 10%.

Esempio di modifica della luminosità
Esempio di modifica della luminosità

3.2.6 Thresholding o sogliatura

L’operazione di soglia serve a binarizzare un’immagine, cioè a passare da una rappresentazioni in livelli di grigio ad una rappresentazione in bianco e nero. In particolare l’operazione consiste nello scegliere un livello di soglia e tutti i pixel che si trovano al di sotto della soglia vengono impostati a 0, mentre tutti quelli maggiori o uguali ad 1 (o meglio al livello massimo che può essere anche 255).

Formula di Thresholding ed esempio
Formula di Thresholding ed esempio

Il parametro chiave in una sogliatura è la scelta del valore di soglia. Esistono diverse metodologie per la scelta automatica di questo valore, oppure è possibile sceglierlo a mano. Un semplice metodo potrebbe essere quello di scegliere il valore medio o la mediana come valore di soglia. Questa logica può funzionare bene in un’immagine senza alcun tipo di rumore, altrimenti si debbono utilizzare tecniche più sofisticate, come ad esempio quello di creare un istogramma e osservare dove vi è il punto più basso in mezzo all’istogramma; quindi si sceglie quel valore come soglia. Ma questo potrebbe non funzionare in immagini più rumorose, dove forse vale la pena di utilizzare un K-means binario (algoritmo di clustering). Anche le immagini a colori possono venire sogliate, e si parla in questo caso di sogliatura multibanda. Un semplice approccio potrebbe essere quello
di scomporre l’immagine nei suoi tre canali RGB e sogliarli tutti indipendentemente. Le tre immagini binarie sono poi processate attraverso un’operazione logica di and.

TORNA ALL’INDICE