Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Giovanni Mettivier » 5.Immagini Digitali - parte seconda


Relazioni tra pixel

Esistono delle relazioni di base tra pixel in un’immagine:

  • intorno di un pixel: 4-intorno di p (N4(p)) con coordinate (x,y) sono i pixel di coordinate (x+1,y), (x,y+1), (x,y-1), (x-1,y); 8-intorno di p (N8(p)) include anche i 4 diagonali;
  • adiacenza: un pixel q è 4-adiacente a p se q∈N4(p), ed è 8-adiacente se q∈N8(p);
  • connettività: due pixel si dicono connessi, se sono adiacenti e se soddisfano un criterio di similarità del livello di grigio. Più in generale, il criterio di similarità può consistere nell’appartenenza di entrambi i valori di grigio ad un insieme V;
  • regioni: si definisce regione R un sottoinsieme di pixel dell’immagine tra loro connessi.
  • contorni: il contorno di una regione è l’insieme di pixel della regione R che hanno uno o più pixel adiacenti che non appartengono a R.

Relazioni tra pixel (segue)

In base alla relazione di adiacenza spaziale adoperata, si definiscono i seguenti tipi di connettività:

  • 4-connettività: due pixel p e q con valori di grigio in V si dicono 4-connessi se q è nel set N4(p);
  • 8-connettività: due pixel p e q con valori di grigio in V si dicono 8-connessi se q è nel set N8(p);
  • m-connettività: due pixel p e q con valori di grigio in V si dicono m-connessi se:
    • q è nel set N4(p), oppure
    • q è nel set ND(p), e risulta vuoto l’insieme dei pixel 4-vicini sia di p che di q: N4(p) ∩ N4(q) = Ø

Relazioni tra pixel (segue)

  • Due pixel 4-, 8- o m-connessi stanno tra loro in una relazione di 4-, 8- o m-adiacenza;
  • due subset S1 e S2 di una immagine sono adiacenti se almeno un pixel di S1 è connesso con almeno un pixel di S2;
  • un cammino (path) dal pixel p di coordinate (x,y) al pixel q di coordinate (s,t) è una sequenza di pixel distinti di coordinate:   (x0,y0), (x1,y1), …, (xn,yn)
    • dove (x0,y0) = (x,y) e (xn,yn) = (s,t) e, inoltre, per 1 ≤ i ≤ n, (xi,yi) è adiacente a (xi-1, yi-1)
  • n è la lunghezza del cammino;
  • dati due pixel p e q di un subset S dell’immagine, p è connesso a q in S se esiste un path tra p e q interamente costituito da pixel di S.

Relazioni tra pixel (segue)

La m-connettività (o connettività mista) è una variante della 8-connettività, introdotta per eliminare l’ambiguità nella determinazione del percorso di connessione tra due pixel che può nascere con la 8-connettività.
Nell’immagine binaria seguente, considerando V = {1}, il pixel centrale risulta 8-connesso con tutti gli altri aventi valore 1, e questo dà luogo all’ambiguità nella definizione dei percorsi di connessione.

Esempio di un percorso di connessione ottenuto tramite la 8-connettività e la m-connettività.

Esempio di un percorso di connessione ottenuto tramite la 8-connettività e la m-connettività.


Image Registration

Per ogni pixel p di S, l’insieme di pixel in S connessi a p costituisce una componente connessa di S. Se ha solo una componente connessa, S è un set connesso.

Relazioni tra pixel (segue)

  • Un sottoinsieme R di una immagine è una regione dell’immagine se è un set connesso.
  • Il suo contorno (boundary o border o contour) è il set di pixel della regione che hanno uno o più vicini non in R.
  • Se R è l’intera immagine, il suo contorno è il set dei pixel della prima e ultima riga e della prima e ultima colonna.
  • Il contorno di una regione (finita) è un cammino chiuso, e quindi è una caratteristica globale della regione.
  • Sono invece caratteristiche locali gli edge, basati sulla misura della discontinuità del livello di grigio nel punto considerato.

Misure di distanza

Dati i pixel p(x,y), q(s,t) e z(u,v), D è una metrica o funzione distanza se:

  • D(p,q) ≥ 0 (D(p,q) = 0 se p=q)
  • D(p,q) = D(q,p)
  • D(p,z) ≤ D(p,q) + D(q,z)

La distanza euclidea tra p e q è definita come:

D{_e} = {\sqrt {{(x - s)}{^2} +{(y - t)}{^2}}}

Con questa definizione di distanza, i pixel a distanza da (x,y) minore o uguale a r sono contenuti in un disco di raggio r con centro in (x,y).

Misure di distanza (segue)

La distanza D4 (o city-block) è definita come:

D4(p,q) = |x-s|+|y-t|

I pixel a distanza da (x,y) minore o uguale a r costituiscono un diamante centrato in (x,y). Per esempio, i pixel a distanza D4 ≤ 2 dal punto centrale formano i contorni alla distanza costante come mostrato in figura.

Si noti che i pixel a D4 = 1 sono i 4-vicini di (x,y).

Esempio di distanza “city-block” ≤ 2.

Esempio di distanza “city-block” ≤ 2.


Misure di distanza (segue)

La distanza D8 (0 chessboard) è definita come:

D8(p,q) = max(|x-s|, |y-t|)

I pixel a distanza da (x,y) minore o uguale a r costituisco un quadrato centrato in (x,y). Per esempio, i pixel a distanza D8 ≤ 2 dal punto centrale formano i contorni alla distanza costante come mostrato in figura.

Si noti che i pixel a D8=1 sono gli 8-vicini di (x,y).

Esempio di distanza “chessboard” ≤ 2.

Esempio di distanza “chessboard” ≤ 2.


Misure di distanza (segue)

Le metriche così definite dipendono soltanto dalle coordinate dei punti, e non dalla eventuale esistenza di un cammino connesso tra di essi.
Tuttavia è facile vedere che la D4 tra due punti coincide con la lunghezza del 4-cammino più breve tra di essi, mentre la D8 è uguale alla lunghezza dell’8-cammino più breve.
Nel caso della m-connettività, invece, la lunghezza del cammino tra due pixel dipende dal valore dei pixel lungo il cammino, e dal valore dei loro vicini. Si consideri l’esempio seguente, dove si assume che p, p2 e p4 abbiano valore pari a 1, e che per la connettività sia V = {1}.

Se p1=p3 = 0, la m-distanza tra p e p4 è 2
Se p1 oppure p3 è pari a 1, la m-distanza è 3
Se p1=p3=1, la m-distanza è pari a 4


Operazioni aritmetiche

Le operazioni aritmetiche tra due pixel, p e q, sono quelle ordinarie di:

  • addizione:…………………….. p+q
  • sottrazione:…………………….p-q
  • moltiplicazione:…………….. p*q
  • divisione:……………………… p/q

Le operazioni aritmetiche tra due immagini hanno luogo normalmente tra pixel omologhi delle due immagini, per tutti i pixel.

Dato che il risultato dell’operazione in ogni posizione (x,y) dipende solo dai valori dei pixel nella stessa posizione nelle immagini di partenza, le operazioni aritmetiche trovano largo impiego nelle elaborazioni appartenenti alla classe delle operazioni puntuali (pixel-by-pixel operations).

Operazioni aritmetiche (segue)

Appartengono invece alla classe delle operazioni locali (nighborhood operations) le elaborazioni che coinvolgono i valori dei pixel in un intorno, generalmente piccolo, della posizione (x,y) di interesse.
Nelle operazioni di questo tipo ci si avvale delle cosiddette maschere (o filtri o finestre o template).
Il valore assegnato dalla elaborazione locale ad un pixel in posizione (x,y) è funzione sia del suo livello di grigio che dei valori dei pixel vicini.

Operazioni aritmetiche (segue)

Prendiamo per esempio la porzione di immagine e la maschera riportate in figura. Il valore del pixel centrale della porzione di immagine, che inizialmente è pari a z5, si ottiene “centrando” la maschera su di esso, moltiplicando ogni pixel dell’intorno la cui dimensione è definita dalla dimensione della maschera per il corrispondente coefficiente o peso, e sommando i risultati:

z = w {_1}z{_1} + w {_2}z{_2} + ... + w {_9}z{_9} = {\sum _{i=1} ^9} w {_i}z{_i}

L’effetto della elaborazione dipende dai coefficienti della maschera.

Esempio di una porzione di immagine e di una maschera generica.

Esempio di una porzione di immagine e di una maschera generica.


Operazioni aritmetiche (segue)

Per esempio, se si vuole sostituire al pixel originale il valore medio dei livelli di grigio in un intorno 3×3, si può porre wi = 1/9 per i = 1,…,9 ottenendo:

z = \frac 1 9 {\sum _{i=1}^9} z{_i}

Questa è una operazione di filtraggio passa basso (filtro di media mobile).

Operazioni aritmetiche (segue)

Le operazioni locali sono tra le più adoperate in elaborazione delle immagini a basso e medio livello (riduzione del rumore, miglioramento di qualità, restauro, estrazione di contorni e di altre caratteristiche, analisi di tessitura e del moto, etc.).
E’ importante notare che il risultato di una operazione locale è ancora una immagine, e che elaborazioni di questo tipo comportano comunque una perdita di informazione: il livello di grigio di un pixel, una volta sostituito per esempio dalla media nell’intorno, non può essere più recuperato.
Per questo motivo si parla di operazioni di filtraggio, e le maschere sono anche dette filtri.
Applicare un filtro a tutti i pixel di una immagine è comunque una operazione computazionalmente costosa.

Operazioni logiche

Le principali operazioni logiche usate nella elaborazione delle immagini sono quelle solite di:

AND, OR, NOT

Queste operazioni sono, come è noto, funzionalmente complete, nel senso che ogni altra operazione logica tra pixel può essere realizzata mediante una loro combinazione.

L’uso più interssante si ha nelle operazioni di estrazione di caratteristiche, analisi della forma, applicazione di maschere, etc.

L’applicazione ad intere immagini si effettua tra pixel omologhi delle due immagini, per tutti i pixel.

Operazioni logiche (segue)

Per esempio, l’operazione di AND tra due immagini binarie dà luogo ad una immagine nella quale sono pari a 1 solo i pixel nelle posizioni in cui i pixel valgono 1 anche nelle due immagini di ingresso.

Esempio dell’applicazione della funzione AND su immagini binarie.

Esempio dell'applicazione della funzione AND su immagini binarie.


Operazioni logiche (segue)

Esempi dell’applicazione delle funzioni semplici (OR e NOT) e di funzioni complesse (XOR) su immagini binarie.

Esempi dell'applicazione delle funzioni semplici (OR e NOT) e di funzioni complesse (XOR) su immagini binarie.


Operazioni logiche (segue)

Anche le operazioni logiche di AND e di OR possono essere utilizzate, in particolare per l’estrazione dall’immagine di una parte significativa (ROI – region of interest) che debba essere successivamente elaborata per miglioramento di qualità, estrazione di caratteristiche, compressione, etc.
Questa operazione, detta anche di masking, può essere condotta come mostrano gli esempi seguenti, ricordando che l’operazione logica è effettuata bit per bit, tra pixel nella stessa posizione nelle due immagini.
Per esempio, se un pixel vale 10010011 si ha:

10010011 AND 11111111= 10010011
10010011 AND 00000000= 00000000

10010011 OR 11111111 = 11111111
10010011 OR 00000000 = 10010011

Operazioni logiche (segue)

Esempi di operazioni di masking utilizzando le funzioni di AND ed OR.

Esempi di operazioni di masking utilizzando le funzioni di AND ed OR.


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93