Thresholding

1. Introduzione

Thresholding è il metodo di segmentazione di un’immagine più semplice per distinguere i pixel in background dai pixel in foreground di un’immagine in base alla loro intensità.

Nell’implementazione più semplice, l’algoritmo prende in ingresso un’immagine binaria o in scala di grigi e produce in uscita un’immagine binaria i cui pixel neri rappresentano i pixel in background mentre i pixel bianchi i pixel in foreground.

Per distinguere l’insieme in cui inserire un pixel esiste un unico parametro chiamato intensità di soglia (o intensity threshold in inglese): se l’intensità di un pixel ha valore minore della soglia viene indicato come bianco (per esempio), altrimenti come nero.

In implementazini più complesse posso anche indicare più valori di soglia oppure, per immagini colorate, impostare un valore di soglia per ogni componente di colore.

2. Applicazioni

Non tutte le immagini possono essere segmentate in questo modo, per poter capire la struttura di un’immagine e se questa può essere correttamente segmentata tramite tresholding è necessario analizzare il suo intensity histogram (grafo che mostra sull’asse delle ordinate le intensità possibili che ogni pixel può essumere, comunemente da 0 a 255, e sull’asse delle y il numero di occorrenze che un pixel con tale intensità si trova nell’immagine).

E’ possibile separare i pixel in primo piano dai pixel in background se l’intensità dei pixel in primo piano è notevolmente differente da quella dei pixel in background; in quasto caso ci aspettiamo di vedere un picco nell’istogramma dell’immagine che corrisponde ai pixel dell’oggetto in foreground che vogliamo evidenziare.

Se tale picco non esiste, con ottima probabilità questo tipo di segmentazione non produrrà risultati apprezzabili. In questo caso è consigliabile usare un algoritmo di adaptive thresholding, che verrà spiegato successivamente in questo articolo.

Prendiamo il seguente esempio

thresholding

Nel primo caso abbiamo il caso più semplice in cui un singolo valore di soglia T1 permette di distinguere i pixel in primo piano dai pixel in background. Nel secondo caso abbiamo invece nu esempio più complesso in quanto i pixel centrali rappresentano l’oggetto che voglio rilevare e conseguentemente la soglia deve essere di due valori: T1 e T2.

Nel terzo caso invece è molto probabile che non si riesca ad ottenere una segmentazine corretta.

3. Adaptive Thresholding

Nel algoritmo tradizinale di thresholding il valore id soglia è impostato all’inizio e rimane costante per tutta la durata dell’algoritmo.

Il metodo di adaptive thresholding invece cambia il valore della soglia dinamicamente in base all’immagine in ingresso, per esempio per avere risultati migliori in immagini in cui cambia la condizione di luminosità dell’oggetto dovuto a illuminazioni laterali che portano a gradienti d’ombra.

Questo metodo seleziona un valore di soglia diverso per ogni pixel in base al range di valori che assumono i pixel nel suo vicinato. Questo permette il thresholding in immagini che non hanno un picco distintivo nell’istogramma.

Per esempio, consideriamo la seguente immagine:

thresholding

Dato che l’immagine contiene un notevole gradiente d’ombra, il metodo di thresholding classico non funziona correttamente, come dimostra il risultato indicato sotto

thresholding 2

Usando un metodo di Adaptive Thresholding utilizzando come algoritmo interno la media e un vicinato 7×7 ottengo:

thresholding 3

che ottiene buoni risultati per il testo, ma non per il background.

La situazione può essere migliorata utilizzando, al posto della media, il mean-C, dove C è una costante, in questo caso tutti i pixel che hanno vicinato uniforme, vengono settati a background, per esempio usando un vicinato 7×7 e la costante C=7 ottengo:

thresholding 4

Che è sicuramente un buon risultato.

Indice

Share
Ultimi articoli
Join

Newsletter

Nessuno spam, solo articoli interessanti ;)

Focus

Post correlati

Cosa sono gli operatori morfologici?

Cambiando completamente argomento rispetto agli ultimi articoli sui cui mi sono soffermato principalmente su SQL Server, in questo post (parziale traduzione di quanto si può

Algoritmi di labelling

1. Introduzione Gli algoritmi di labelling di componenti connesse cercano di raggruppare i pixel di un’immagine (binaria o in scala di grigi) in base alla

Normalizzazione e equalizzazione

1.Normalizzazione 1.1 Introduzione La normalizzazione è una semplice tecnica di miglioramento di un’immagine che cerca di migliorarne il contrasto eseguendo una “stiratura” dei valori dei

Come utilizzare i filtraggi digitali su una immagine

Questo articolo è una parziale traduzione di quanto trovato in http://homepages.inf.ed.ac.uk/rbf/HIPR2/filtops.htm e nelle pagine correlate. 1. Introduzione I filtraggi digitali di immagini sono usati principalmente

Codice Pragmatico

Contatti

Per informazioni, dubbi o consulenze non esitate a contattarmi.

Lascia un messaggio

Ricevi le ultime news

Iscrivi alla newsletter

Solo articoli interessanti, promesso ;)