Ciao mi chiamo Jacopo! Sono un UX/UI Designer e Front End Developer. Sul mio sito troverai articoli sullo sviluppo Front End

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 - UX/UI Designer e Front End Developer
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.