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).