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 loro connettivitΓ , la quale puΓ² essere di varia natura, sia effettiva (pixel adiacenti) sia qualitativa (pixel con la stesso valore di intensitΓ ). una volta che tutti i gruppi sono stati determinati, ad ogni pixel viene associata un’etichetta di colore in base al gruppo a cui questo Γ¨ stato assegnato. Rilevare questi gruppi e eseguirne il labelling di gruppi di pixel disgiunti Γ¨ il punto fondamentale in molte applicazioni di analisi di immagini.

1.1 Approfondimento: ConnettivitΓ  tra pixel

La notazione di pixel connectivity descrive la relazione tra due o piΓΉ pixel. Due pixel sono considerati connessi se soddisfano una certa condizione sul valore del pixel stesso, oppure sulla loro vicinanza spaziale. Per formulare il concetto di β€œadiacenza” o β€œvicinanza spaziale” dobbiamo introdurre il concetto di vicinato. Dato un pixel p di coordinate (x,y) l’insieme dei pixel di coordinate

{(x+1, y), (x-1, y), (x, y+1), (x, y-1)}

Γ¨ detto 4-neighbors. 8-neighbors invece aggiunge, oltre ai pixel indicati sopra, anche i pixel in diagonale. Un insieme di pixel in cui tutti sono connessi con gli altri Γ¨ detto componente connessa. Trovare tutte le componenti connesse di un’immagine Γ¨ il compito dell’algoritmo di labelling descritto in questo articolo.

2. Funzionamento

Questo algoritmo esegue uno scan pixel a pixel (dall’alto in basso e da destra a sinistra) in modo da indentificare regioni di pixel spazialmente connessi che condividono la stesso valore del pixel V. Se l’immagine Γ¨ binaria V puΓ² assumere solo un valore, se invece Γ¨ in scala di grigi un insieme di valori. Prendiamo come esempio la seguente immagine

L’algoritmo assegna ad ogni zona trovata un valore in scala di grigi

é conveniente passare dalla scala di grigi al colore per il labelling in modo che siano più facilmente distinguibili, ottenendo così la seguente immagine

L’algoritmo ottiene risultati migliori quando l’immagine Γ¨ stata preprocessata da qualche algoritmo di segmentazione (come il thresholding) o schema di classificazione.

3. Applicazioni

L’applicazione piΓΉ comune di questo algoritmo Γ¨ contare il numero di oggetti in un’immagine. Per esempio, nell’esempio indicato sopra, avere 8 colori diversi significa che nell’immagine sono presenti 8 oggetti. Prendiamo come esempio l’immagine seguente, in cui il nostro obiettivo Γ¨ contare il numero di galline

Per prima cosa eseguo un algoritmo di thresholding per ottenere un’immagine binaria

e lanciando l’algoritmo di labelling ottengo

come versione in scala di grigi e

con label colorate. Il numero di colori diversi in questa immagine Γ¨ 196, che non Γ¨ assolutamente il numero di polli ricercato. Questo esempio mostra come l’algoritmo di labelling Γ¨ solo il passo finale, la parte difficile Γ¨ ottenere una buona immagine binaria in ingresso che mi rappresenti fedelmente quanto voglio ricercare e che separi in maniera netta gli oggetti interessanti (foreground) dagli oggetti da scartare (background).