Un blog sullo sviluppo Front End, corsi WordPress, Data Science, Machine Leaning e Python.

Le proprietà topologiche di un’immagine, sono quelle proprietà che non variano quando si subisce una trasformazione o si modifica la forma geometrica e definiscono quindi la relazione tra i pixel all’interno dell’immagine.

Queste deformazioni subite dall’immagine non alterano l’omogeneità degli oggetti presenti nella stessa e non evidenziano buchi.

Le proprietà topologiche si suddividono in: intorno, adiacenza, cammino, connettività, foreground/background e convex hull.

Intorno (neighbor)

L’intorno è la proprietà locale di ogni singolo pixel ed è definita nel seguente modo:

Per il pixel $p(x,y)$ abbiamo un insieme di punti $N_{4}(p)$ vicini in senso verticale e orizzontale a quel pixel.

N4(p)={(x−1,y),(x,y−1),(x+1,y),(x,y+1)}

I movimenti che si possono fare nell'intorno del pixel sono possibili solo con spostamenti di 90°, e questo tipo di intorno viene definito 4-neighbor o 4-intorno.

Un altro tipo di intorno è il D-neighboro D-intorno e si basa su un pixel $p(x, y)$ e l'insieme dei suoi punti vicini $ N_D(p) $ in senso diagonale.

N8(p)=N4(p)∪ND(p)

I movimenti che si possono fare con l’8-intorno possono essere sia verticale che orizzontale che in diagonale.

Questo è l’intorno più completo poiché considera tutti i vicini del pixel.

Adiacenza (adjacency)

L’adiacenza è strettamente legata al concetto di intorno, dove due pixel si dicono adiacenti se ci sono degli intorni (o per meglio dei vicini/neighbors) tali che la i loro valori di intensità soddisfino alcuni specifici criteri di similarità.

Abbiamo tre tipologie di adiacenza:

  • 4-adiacenza: dove due pixel $p$ e $q$ con valori in $V$ sono 4-adiacenti se $q$ appartiene a $N_{4}(p)$ (insieme 4-intorno)
  • 8-adiacenza: dove due pixel $p$ e $q$ con valori in $V$ sono 8-adiacenti se $q$ appartiene a $N_{8}(p)$ (insieme 8-intorno)
  • m-adiacenza: dove due pixel $p$ e $q$ con valori in $V$ sono 4-adiacenti se: $q$ appartiene a $N_{4}(p)$ o $q$ appartiene a $N_{D}(p)$ e $N_{4}(p) \cap N_{4}(p)$ non ha pixel con valori in $V$

Poniamo ora degli esempi:

Suddividiamo per definizione il range dei valori d’intensità secondo due tipi di immagini: binarie e a scala di grigio.

Immagini binarie = ${0, 1 }$

Immagini scala di grigio = ${0, 1, 2 ...... , 255 }$

Nelle immagini binarie, due pixel sono adiacenti tra loro se sono vicini (intorno) e hanno dei valori d'intensità compresi tra 0 e 1.

Nelle immagini a scala di grigio, le immagini contengono più livelli di grigio in un range compreso tra 0 e 255.

Es.1

$V = {0, 1 }$

$p$ è di colore rosso e $q$ può essere qualsiasi valore di colore verde.

In questo caso avremo una 4-adiacenza.

Es.2

$V = {1, 2 }$

$p$ è di colore rosso e $q$ può essere qualsiasi valore di colore verde.

In quest'altro caso avremo invece una 8-adiacenza.

Cammino (path)

L'adiacenza serve per definire un cammino o path. Utilizzando i diversi concetti di adiacenza si arriva a definire i vari cammini, ovvero gli x-path (4-cammini, 8-cammini e gli m-cammini).

Un x-path da un pixel $P_{0} [i_{0}, j_{0}]$ ad un pixel $P_{n}[i_{n}, j_{n}]$ rappresenta una sequenza di pixel $[i_{0}, j_{0}], [i_{1}, j_{1}], ... [i_{n-1}, j_{n-1}], [i_{n}, j_{n}]$ tale che il pixel $[i_{k}, j_{k}]$ sia x-adiacente a $[i_{k+1}, j_{k+1}]$ per ogni $k \in\ [0, n-1]$.

Quando si definisce un cammino, prendiamo un insieme di pixel che uniscono 2 pixel all'interno della nostra immagine (attraversabili in successione), ed ogni coppia all'interno del cammino è x-adiacente.

X-path rappresenta quindi il numero di coppie di pixel che servono per raggiungere da un pixel A un pixel B (da non confondere con XPath). Ogni coppia di pixel presi nel cammino devono essere ognuno adiacente all'altro.

Ti sei iscritto con successo al blog di Jacopo Kahl
Bentornato! Hai effettuo l'accesso al blog.
Ottimo! Ti sei appena registrato.
Perfetto! Il tuo account è attivo, ed hai l'accesso a tutti i contenuti.