Etichettamento di componenti connesse

Etichettamento di componenti connesse, o labelling delle componenti connesse, è un'applicazione algoritmica della teoria dei grafi, nella quale sottoinsiemi di componenti connesse vengono etichettate in modo univoco sulla base di dati euristici. Non va confusa con la segmentazione di immagini. L'etichettamento di componenti connesse è di uso in computer vision per rilevare regioni connesse in immagini digitali binarie, sebbene si presti anche all'elaborazione di immagini a colori e con dati ad alta dimensionalità.

La tecnica di etichettamento di componenti connesse è correlata con il riconoscimento di regioni.

Algoritmo a due passi

[modifica | modifica wikitesto]

Lo pseudocodice è il seguente:

algoritmo Due passi(data)    linked = []    labels = structure with dimensions of data, initialized with the value of Background        Primo passo        for row in data:        for column in row:            if data[row][column] is not Background                                neighbors = connected elements with the current element's value                                if neighbors is empty                    linked[NextLabel] = set containing NextLabel                                        labels[row][column] = NextLabel                    NextLabel += 1                                else                                        Find the smallest label                                        L = neighbors labels                    labels[row][column] = min(L)                    for label in L                        linked[label] = union(linked[label], L)        Secondo passo        for row in data        for column in row            if data[row][column] is not Background		                labels[row][column] = find(labels[row][column])                 return labels 

Gli algoritmi find e union sono implementati come descritti in union find.

Voci correlate

[modifica | modifica wikitesto]
Controllo di autoritàGND (DE1133085687