Comments
Transcript
Trasformazioni di Intensità e Filtraggio Spaziale
Trasformazioni di Intensità e Filtraggio Spaziale (Alcuni Richiami) Prof. Sebastiano Battiato Multimedia - Prof. Sebastiano Battiato Terminologia Le tecniche di elaborazione delle immagini sono in generale rivolte all’ottenimento di uno dei seguenti obiettivi di massima: miglioramento di qualità (image enhancement) ripristino di qualità o restauro (image restoration) estrazione di informazione (feature detection) Manca in realtà una teoria generale del miglioramento di qualità, dato che non esiste uno standard generale di qualità delle immagini. Multimedia - Prof. Sebastiano Battiato 1 Terminologia Anche se le trasformazioni di intensità e il filtraggio spaziale abbracciano una vasta gamma di applicazioni, la maggior parte degli esempi che vedremo riguardano il miglioramento dell’immagine (enhancement). L’enhancement è il processo di manipolazione dell’immagine tale che il risultato sia più simile dell’originale per una specifica applicazione. L’aggettivo specifica è importante perché stabilisce fin dall’inizio che le tecniche di miglioramento sono problemi dedicati. Quindi, ad esempio, un metodo valido per il miglioramento di immagini a raggi X potrebbe non essere l’approccio migliore per immagini satellitari catturate nella banda ad infrarossi dello spettro elettromagnetico. Multimedia - Prof. Sebastiano Battiato Terminologia Le tecniche di elaborazione si distinguono in puntuali, locali, globali, sequenziali, parallele. Possono essere applicate: tra domini diversi (trasformate bidimensionali); nello stesso dominio (di particolare interesse il dominio spaziale e quello delle frequenze spaziali); con riduzione dei dati tra ingresso e uscita (per esempio estrazione di informazioni o compressione); (spesso) lineari e spazio-invarianti (convoluzioni bidimensionali) Multimedia - Prof. Sebastiano Battiato 2 Metodi nel Dominio Spaziale Le elaborazioni nel dominio spaziale possono essere espresse come: g(x,y)= T[f(x,y)] essendo f l’immagine di ingresso alla elaborazione, g quella di uscita e T un operatore su f, definito in un intorno di (x,y). La dimensione dell’intorno di (x,y) definisce il carattere della elaborazione: puntuale (l’intorno coincide con il pixel stesso); locale (per esempio una piccola regione quadrata centrata sul pixel); globale (l’intorno coincide con l’intera f). Multimedia - Prof. Sebastiano Battiato Elaborazioni Puntuali Il risultato di una elaborazione puntuale omogenea dipende solo dal valore del pixel cui è applicata, per cui tali elaborazioni vengono anche dette manipolazioni della scala dei grigio dei colori. Se invece il risultato dell’elaborazione dipende anche dalla posizione del pixel nell’immagine, si parla di elaborazioni puntuali non omogenee. Alcune tipiche elaborazioni puntuali omogenee: Aggiunta o sottrazione di una costante a tutti i pixel (per compensare sotto o sovraesposizioni); Inversione della scala dei grigi (negativo); Espansione del contrasto; Modifica (equalizzazione o specifica) dell'istogramma; Presentazione in falsi colori. Multimedia - Prof. Sebastiano Battiato 3 Elaborazione Puntuali Omogenee L’elaborazione si effettua applicando una specifica operazione a ciascun pixel dell’immagine di partenza, e costruendo una nuova immagine in cui ciascun pixel assume un valore che è il risultato della operazione stessa. L’elaborazione puntuale omogenea può pertanto essere rappresentata da una trasformazione (o mapping) dei livelli di grigio, del tipo: s = T(r) dove r è la variabile che rappresenta il livello di grigio dell’immagine di ingresso alla elaborazione ed s è la variabile che rappresenta il livello di grigio dell’immagine di uscita. Multimedia - Prof. Sebastiano Battiato Contrast Enhancement L’immagine di output avrà un contrasto maggiore visto che i valori di grigio più piccoli di m vengono resi più scuri mentre quelli più grandi vengono resi più chiari. Multimedia - Prof. Sebastiano Battiato 4 In generale quindi utilizzando un grafico come quello mostrato in figura si riescono ad implementare le cosiddette look-up tables (LUT), in grado di implementare operazioni puntuali anche di tipo non banale. Multimedia - Prof. Sebastiano Battiato Esempio (a) Mammografia digitale (b) Negativo dell’immagine ottenuta usando la trasformazione “negativa” Multimedia - Prof. Sebastiano Battiato 5 Trasformazione Logaritmica Si tratta di una trasformazione che consente di comprimere la gamma dinamica, permettendo la memorizzazione o la visualizzazione, con una scala dei grigi usuale, di immagini caratterizzate da escursioni di intensità molto ampie. Può essere espressa come: s = c log (1 + r) Si può notare come la trasformazione realizzi l’espansione della dinamica per bassi valori di r e la compressione della dinamica per alti valori di r. c è una costante di scala, che va scelta opportunamente per far rientrare i valori trasformati nel range corretto, cioè in [0, L-1]. Multimedia - Prof. Sebastiano Battiato Trasformazione Logaritmica Supponendo che sia 0 < r < R, si ha 0 < s < c log(1+R). Se R>>1, come normalmente avviene, per esempio, per lo spettro di Fourier di una immagine, si può porre: c log R = L-1, da cui c = (L-1)/log R In tal modo è possibile, per esempio, visualizzare su un dispositivo a 256 livelli di grigio un’immagine con una gamma dinamica molto più ampia, anche dell’ordine dei milioni, senza che siano visualizzabili solo i valori più alti, come avverrebbe se il mapping tra le due gamme dinamiche fosse lineare. Multimedia - Prof. Sebastiano Battiato 6 Un Esempio L’immagine di sinistra contiene dei valori compresi tra 0 e 1.5x106, visualizzata scalando questi valori linearmente nel range [0, 28-1]. La variabilità relativa può essere evidenziata applicando, prima dello scaling lineare a 8-bit, una trasformazione logaritmica (in questo caso c=1). Multimedia - Prof. Sebastiano Battiato Trasformazione di Potenza La trasformazione di potenza, nel caso generale può essere espressa come: s = c rγ dove c e γ sono costanti positive. La costante c è scelta di volta in volta in modo da normalizzare i valori di s in [0, 255]. Come vedremo, per valori di γ minori di 1 la trasformazione ha effetti analoghi alla trasformazione logaritmica (espansione della dinamica per bassi valori di r, compressione della dinamica per alti valori di r), mentre per valori di γ maggiori di 1 la trasformazione ha esattamente gli effetti opposti. Multimedia - Prof. Sebastiano Battiato 7 c=1 E’ importante osservare come gli effetti della trasformazione siano facilmente controllabili agendo sul parametro γ, il che consente di adattare la trasformazione stessa (si parla infatti di una famiglia di possibili curve di trasformazione) ad una ampia gamma di situazioni. Multimedia - Prof. Sebastiano Battiato Correzione Gamma I monitor CRT esibiscono tipicamente una caratteristica intensità di emissione-tensione applicata non lineare, ma approssimativamente quadratica (in realtà l’esponente varia tra 1.8 e 2.5) Con riferimento alle curve mostrate, questo comportamento tende a rendere l’immagine più scura del voluto. Per esempio, su un monitor CRT (con γ= 2.5) si può applicare una correzione, pre-processando l’input con la corrispondente funzione inversa: s = r1/2.5= r0.4 Multimedia - Prof. Sebastiano Battiato 8 Correzione Gamma Multimedia - Prof. Sebastiano Battiato Correzione Gamma Come già accennato la correzione Gamma può anche essere utilizzata, per modificare il contrasto di un’immagine. L’immagine in alto a sx presenta una chiaro appiattimento della dinamica verso il “bianco” (si veda il relativo istogramma). g=3 g=4 g=5 A seguire l’immagine risultante dall’applicazione di una correzione Gamma al variare del parametro g. Multimedia - Prof. Sebastiano Battiato 9 Bit-planes Un’immagine con una profondità colore di N bit può essere rappresentata da N piani di bit (bit-planes), ciascuno dei quali può essere vista come una singola immagine binaria. In particolare si può indurre un ordine che varia dal Most Significant Bit (MSB) fino al Least Significant Bit (LSB). Multimedia - Prof. Sebastiano Battiato Lena: Bit-planes Most Significant bit (MSB) Least Significant bit (LSB) Multimedia - Prof. Sebastiano Battiato 10 Ancora Bit-planes Multimedia - Prof. Sebastiano Battiato Bit-planes Multimedia - Prof. Sebastiano Battiato 11 Bit-planes: Osservazioni I piani di bit più significativi contengono informazioni sulla struttura dell’immagine, mentre quelli via via meno significativi forniscono i dettagli sempre più piccoli. Si noti che solo i piani dal 7 al 3 contengono dati significativi dal punto di vista visuale. Che cosa rappresenta l’immagine del piano 7 ? Quali sono gli intervalli di valori di grigio coperti dagli altri piani? Multimedia - Prof. Sebastiano Battiato Range Highlights E’ possibile selezionare solo i toni di grigio all’interno di un certo range di valori, attraverso delle LUT dette appunto Range Highlights in grado di agire solo sui toni di grigio all’interno di un intervallo [A, B]. Multimedia - Prof. Sebastiano Battiato 12 Bit-planes e LUT Data un’immagine I a 256 toni di grigio, realizzare una LUT che evidenzi i toni di grigio individuati dal terzo e dal quinto bit (primo bit = MSB, ottavo bit =LSB) I toni di grigio individuati dal terzo bit sono tutti quelli della forma: xx1xxxxx In particolare si può osservare che per il sistema di numerazione posizionale, il terzo bit individua i valori multipli di 25=32, ne segue che i toni di grigio individuati saranno i seguenti intervalli di ampiezza 25-1=31, individuati ad intervalli regolari di 26=64 valori: 001xxxxx 011xxxxx 101xxxxx 111xxxxx 25 = 26+25 = 27+25 = 27+26+25 = 32, ……, 63 96, ……, 127 160, ….., 191 224, ….., 255 Multimedia - Prof. Sebastiano Battiato Bit-planes e LUT I toni di grigio individuati dal quinto bit sono tutti quelli della forma: xxxx1xxx In particolare si può osservare che per il sistema di numerazione posizionale, il terzo bit individua i valori multipli di 23=8, ne segue che i toni di grigio individuati saranno i seguenti intervalli di ampiezza 23-1=7, individuati ad intervalli regolari di 24=16 valori: 00001xxx 00011xxx 00101xxx 00111xxx 01001xxx 01011xxx 01101xxx 01111xxx 23 = 24+23 = 25+23 = 25+24+23 = 26+23 = 26+24+23 = 26+25+23 = 26+25+24+23= 8, ……, 15 24, ….., 31 40, ..…, 47 56, ….., 63 72, ..…, 79 88, ….., 95 104, …, 111 120, ….., 127 Multimedia - Prof. Sebastiano Battiato 13 Bit-planes e LUT 10001xxx 10011xxx 10101xxx 10111xxx 11001xxx 11011xxx 11101xxx 11111xxx 27+23= 27+24+23= 27+25+23= 27+25+24+23= 27+26+23= 27+26+24+23= 27+26+25+23= 27+26+25+24+23= 136, ….., 143 152, ….., 159 168, ….., 175 184, ….., 191 200, ….., 207 216, ….., 223 232, ….., 239 248, ….., 255 In generale la LUT che evidenzia i toni di grigio dell’i-esimo bit (i = 0,…., 7) dove i = 0 fa riferimento al LSB, individua i toni di grigio ad intervalli regolari di 2i+1 valori, a partire da 2i. L’ampiezza di ciascun intervallo è pari a 2i-1. Individuati gli intervalli costruire la LUT corrispondente è immediato. Multimedia - Prof. Sebastiano Battiato Bit-planes: LUT Multimedia - Prof. Sebastiano Battiato 14 MATLAB function bitPlanes(imagePath, bit) %Creo il byte da mettere in AND per evidenziare solo un bit mask = pow2(double(bit)); mask = uint8(mask); disp('Maschera'); dec2bin(mask) im = imread(imagePath); image = rgb2gray(im); a = bitand(mask, image); %Applico la maschera %Trasformo tutti i valori >0 in 1 e poi in 255 b = (a>0) * 255; image = uint8(b); figure; imshow(image); X = uint8([0:1:255]); y = bitand(mask, X); Y = (y>0) *255; figure;plot(X,Y,'.');axis([0 255 -10 300]); end Multimedia - Prof. Sebastiano Battiato Modifica dell’Istogramma L'istogramma (normalizzato) dei livelli di grigio di un'immagine digitale è la funzione discreta p(rk ) = nk MN per k = 0,1, ..., L-1 dove nk è il numero di pixel dell'immagine con livello di grigio rk mentre M ed N denotano le dimensioni orizzontale e verticale (il numero totale di pixel). E' pertanto una stima a posteriori delle probabilità di occorrenza dei livelli di grigio dell'immagine, utile perchè fornisce una descrizione globale della cosiddetta "apparenza" dell'immagine. Multimedia - Prof. Sebastiano Battiato 15 Modifica dell’Istogramma Le informazioni date dall’istogramma possono dare un'idea generale della possibilità di miglioramento dell'immagine, soprattutto in termini di manipolazione del contrasto, ma trovano applicazione anche in altre elaborazioni (segmentazione, compressione). Alcuni autori considerano non puntuali ma globali le elaborazioni di questo tipo, in quanto l’istogramma rappresenta una descrizione in un certo senso globale delle caratteristiche visuali dell’immagine. In senso stretto, però, la manipolazione dell’istogramma è una operazione puntuale. Multimedia - Prof. Sebastiano Battiato Equalizzazione: perche? In generale le componenti di luminanza di un istogramma in immagini ad alto contrasto coprono, quasi l’intera gamma di valori ed inoltre la distribuzione dei pixel non è troppo dissimile da una distribuzione uniforme. Multimedia - Prof. Sebastiano Battiato 16 Equalizzazione: perche? L’equalizzazione (o linearizzazione) dell’istogramma di una immagine è l’elaborazione che idealmente produce una immagine con istogramma “piatto”, cioè con livelli di grigio uniformemente distribuiti sui pixel (ogni livello di grigio caratterizza lo stesso numero di pixel dell’immagine). Prima di procedere con i dettagli del relativo algoritmo è bene rivedere alcuni concetti sulla teoria della probabilità (variabili casuali, probability density function (PDF), cumulative density function (CDF), ecc.). (si veda pagg. 33-44 review_of_probability.zip e pagg. 21-24 review.pdf dal sito del libro di testo). Multimedia - Prof. Sebastiano Battiato Equalizzazione dell’Istogramma In realtà una distribuzione perfettamente uniforme dei livelli di grigio non può essere ottenuta, principalmente a causa della natura discreta delle grandezze trattate. Supponiamo inizialmente che r sia una variabile continua, tale che 0 ≤ r ≤ L – 1; si assuma inoltre che s = T(r) soddisfi le due condizioni: a) T(r) è una funzione monotona non decrescente nell’intervallo 0≤ r ≤ L-1 b) 0 ≤ Τ(r) ≤ L-1 per 0 ≤ r ≤ L-1 Per garantire l’esistenza della trasformazione inversa richiederemo anche la stretta monotonicità. La a) conserva anche l'ordine dei livelli nella scala dei grigi (dal nero al bianco), mentre la condizione b) garantisce una trasformazione consistente con i livelli di grigio permessi (tra 0 e 1). Multimedia - Prof. Sebastiano Battiato 17 Esempi di T(r) Multimedia - Prof. Sebastiano Battiato Equalizzazione dell’Istogramma trasformazione inversa è r = T-1(s) per 0 ≤ s ≤ 1, e si assume che anche T-1(s) soddisfi le condizioni a) e b) rispetto a s. Se r e s vengono viste come variabili random nell'intervallo [0,1], è possibile caratterizzarle mediante le rispettive densità di probabilità, pr(r) e ps(s). Dalla teoria della probabilità, se pr(r) e T(r) sono note e T-1(s) soddisfa la condizione a), si ha: La dr p s ( s ) = pr (r ) ds r =T 1 ( s ) E' possibile pertanto controllare la distribuzione dei livelli di grigio nell'immagine trasformata adoperando una adeguata funzione di trasformazione. Multimedia - Prof. Sebastiano Battiato 18 Equalizzazione dell’Istogramma In particolare si consideri la trasformazione costituita dalla funzione di distribuzione cumulativa (CDF) di r: r s = T (r ) = ( L 1) pr ( )d, 0 r L 1 0 La CDF soddisfa entrambe le condizioni a) e b), in quanto è ad un solo valore e cresce monotonicamente (fra 0 e 1) in funzione di r. Derivando rispetto a r si ottiene (per la regola di Leibniz): ds dT (r ) d r = = ( L 1) pr ( )d = ( L 1) pr (r ) dr dr dr 0 e quindi: 1 1 p s ( s ) = pr ( r ) = ( L 1) pr (r ) r =T 1 ( s ) L 1 0 s L 1 Multimedia - Prof. Sebastiano Battiato Multimedia - Prof. Sebastiano Battiato 19 Equalizzazione dell’Istogramma Pertanto la densità di probabilità della variabile trasformata è uniforme nel suo intervallo di definizione, indipendentemente dalla funzione di trasformazione inversa T-1(s). Questo è importante perché l’inversione della T(r) non è, in generale, una operazione analiticamente semplice. Utilizzando come trasformazione la CDF di r si ottiene dunque una immagine con densità di probabilità uniforme dei livelli di grigio, indipendentemente dalla densità di probabilità iniziale. Ne deriva un incremento nella gamma dinamica dei pixel che può avere notevoli effetti sulla"apparenza" dell'immagine. Multimedia - Prof. Sebastiano Battiato Equalizzazione dell’Istogramma Tornando a considerare discrete le variabili random, si prendono in considerazione probabilità e somme al posto di densità di probabilità e integrali. Si ha per la probabilità di occorrenza dei livelli di grigio: p(rk ) = nk MN per 0 rk 1 e k = 0,1, ..., L-1 La funzione da utilizzare per l'equalizzazione dell'istogramma nel caso discreto è la seguente: k sk = T (rk ) = ( L 1) pr (rj ) = j =0 ( L 1) k n j , 0 rk L 1 e k = 0,1, ..., L-1 MN j =0 La trasformazione consiste nel trasformare ogni pixel di livello rk in un pixel di livello sk, attraverso la T(rk) che si calcola direttamente dall’istogramma dell'immagine di partenza. Multimedia - Prof. Sebastiano Battiato 20 Equalizzazione: un esempio Multimedia - Prof. Sebastiano Battiato Equalizzazione dell’Istogramma Come si può notare, l’istogramma della immagine equalizzata non è piatto. D’altro canto, l’uniformità della ps(s) è stata verificata solo nel caso continuo, e non nel caso discreto. Tuttavia, i livelli di grigio dell’immagine equalizzata spaziano su tutta la dinamica possibile (anche se alcuni livelli possono non essere presenti), ed in particolare raggiungono sempre il bianco. Al conseguente incremento del contrasto si possono aggiungere effetti sgradevoli quali lo “sgranamento” dell’immagine, la comparsa di “false” regioni, ecc., soprattutto quando il contrasto dell’immagine originale è molto basso. L’apparenza dell’immagine può essere migliorata anche con altre tecniche di modifica del contrasto, ma l’equalizzazione dell’istogramma ha il vantaggio di essere completamente automatica. Multimedia - Prof. Sebastiano Battiato 21 Equalizzazione: Esempio1 Si consideri la seguente immagine di dimensione 20x20. La prima colonna larga 10 ha colore 0, la seconda colonna larga 5, ha colore 1, la terza colonna larga 3 con colore 3, la quarta colonna larga 2 con colore 4. k r nk/n 0 0 (20*10)/400 = 0,5 1 0,25 (20*5)/400 = 0,25 2 0,5 (20*0)/400 = 0 3 0,75 (20*3)/400 = 0,15 4 1 (20*2)/400 = 0,1 Multimedia - Prof. Sebastiano Battiato Equalizzazione: Esempio1 Il relativo istogramma è il seguente: 0,6 0,5 0,5 0,4 0,25 0,3 0,15 0,2 0,1 0,1 0 0 1 2 3 4 5 L’operatore T(r) utilizza le frequenze cumulate per definire i valori sk come segue: s0=T(r0)= 0,5 ----- r2 s1=T(r1)= 0,75 ----- r3 s2=T(r2)= 0,75 ----- r3 s3=T(r3)= 0,9 ----- r4 s4=T(r4)= 1 ----- r4 Multimedia - Prof. Sebastiano Battiato 22 Equalizzazione: Esempio1 La LUT corrispondente è quindi univocamente determinata: Multimedia - Prof. Sebastiano Battiato Equalizzazione: Esempio1 L’istogramma finale dell’immagine equalizzata avrà la seguente forma: 0,6 0,5 0,5 0,4 0,3 0,25 0,25 4 5 0,2 0,1 0 0 1 2 0 3 L’aspetto grafico dell’immagine sarà quindi: Multimedia - Prof. Sebastiano Battiato 23 Equalizzazione: Esempio2 Perché l’equalizzazione non produce in realtà un istogramma piatto? Vediamolo con un esempio. Si consideri una semplice immagine con L = 8 livelli di grigio (k = 0, 1, …, 7) e la seguente distribuzione di probabilità: Multimedia - Prof. Sebastiano Battiato Equalizzazione dell’Istogramma Applicando la trasformazione si ottengono i seguenti valori: s0=T(r0)=0,015 s1=T(r1)=0,115 s2=T(r2)=0,365 s3=T(r3)=0,765 s4=T(r4)=0,965 s5=T(r5)=1 s6=T(r6)=1 s7=T(r7)=1 Che non coincidono con gli rk iniziali. Che fare allora? Multimedia - Prof. Sebastiano Battiato 24 Equalizzazione dell’Istogramma Avendo a disposizione solo 8 valori di grigio, bisogna approssimare i valori sk così ottenuti al valore di grigio possibile più vicino (multipli di 1/7=0.143). Denotando con ss tali valori approssimati si ottiene: Ridistribuendo i pixel sui nuovi livelli, la distribuzione di probabilità dei pixel dell’immagine di uscita è la seguente: ps(0) = 0.015 ps(0.143) = 0.1 ps(0.286) = 0 ps(0.428) = 0.25 ps(0.571) = 0 ps(0.714) = 0.4 ps(0.857) = 0 ps(1) = 0.235 Multimedia - Prof. Sebastiano Battiato Equalizzazione dell’Istogramma E’ l’approssimazione nel calcolo dei nuovi livelli, dovuta alla natura discreta dei livelli stessi, a causare la non uniformità dell’istogramma. Inoltre si può notare che il livello massimo è necessariamente presente, per effetto del meccanismo di trasformazione utilizzata. Qual è l’effetto prodotto dalla equalizzazione di una immagine già equalizzata? Multimedia - Prof. Sebastiano Battiato 25 (1) (2) (3) (4) Multimedia - Prof. Sebastiano Battiato Histogram Matching Esistono applicazioni per le quali basare il processo di enhancement sulla trasformazione volta ad ottenere un istogramma uniforme non è la migliore soluzione. In particolare è spesso utile, specificare la “forma” (shape) dell’istogramma che si vuole ottenere. Questa tecnica prende il nome di Histogram Matching o Specification. Multimedia - Prof. Sebastiano Battiato 26 Histogram Matching: un esempio L’equalizzazione appiattisce “wash-out” l’immagine di input Multimedia - Prof. Sebastiano Battiato Histogram Matching: un esempio Multimedia - Prof. Sebastiano Battiato 27 Contrast Stretching I punti di controllo (r1,s1) e (r2,s2) regolano la tipologia di trasformazione da applicare. Se r1=s1 e r2=s2 si ottiene la retta a 45° gradi che lascia tutto inalterato. Se r1=r2 , s1=0 e s2 = L-1 si ottiene una funzione di thresholding. (r1,s1) = (rmin, 0) (r2,s2) = (rmax, L-1) r1 = r2 = m s1 =0, s2=L-1 Di solito si ha r1≤ r2 e s1≤ s2 per ovvi motivi. Multimedia - Prof. Sebastiano Battiato Elaborazioni puntuali non omogenee Le operazioni logiche di AND e di OR possono essere utilizzate, in particolare per l’estrazione dalla immagine di una parte significativa (ROI – Region of Interest) che debba essere successivamente elaborata. 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. Multimedia - Prof. Sebastiano Battiato 28 Miglioramento locale L’equalizzazione dell’istogramma vista in precedenza, non si presta ad un miglioramento dell'immagine relativo a dettagli in piccole aree (piccolo numero di pixel), in quanto essa prevede una trasformazione basata sulla distribuzione dei livelli di grigio nella intera immagine. Multimedia - Prof. Sebastiano Battiato Multimedia - Prof. Sebastiano Battiato 29 Miglioramento locale Il piccolo numero di pixel in queste aree può avere infatti influenza trascurabile nella determinazione di una trasformazione globale, che pertanto non garantirà necessariamente il miglioramento locale. E’ possibile allora utilizzare metodi basati sulla distribuzione dei livelli di grigio (o di altre proprietà dei pixel) in piccole aree dell'immagine. Oltre all’istogramma, altre proprietà frequentemente usate in elaborazioni locali di questo tipo sono l'intensità media m, che è una misura della luminosità media dell'intorno considerato, e la varianza σ2 (o la sua radice quadrata, cioè la deviazione standard σ), che è una misura del contrasto nell'intorno. Multimedia - Prof. Sebastiano Battiato Miglioramento Locale Con lo stesso significato dei simboli visto in precedenza, il momento centrale n-mo di r (l’attributo centrale significa che alla r è stata sottratta la sua media m) è definito come: L 1 n (r ) = ri m p(ri ) n i =0 L 1 dove m = ri p(ri ) i =0 Si ha, ovviamente, µ0= 1 e µ1= 0. In particolare, per n = 2, si ha la varianza: L 1 2 (r ) = 2 (r ) = (ri m) 2 p(ri ) i =0 Multimedia - Prof. Sebastiano Battiato 30 Features Extraction: Contrast and Focus To be able to identify regions of the image that contain more information, the luminance plane is subdivided in m blocks of equal dimensions (NxN). For each block, statistical measures of “contrast” and “focus” are computed. The underlying assumption is that that well focused or high-contrast blocks are more relevant compared to the others. Focus Measure The focus measure is computed by convolving each block with a simple 3x3 Laplacian filter. In order to discard irrelevant high frequency pixels (mostly noise), the outputs of the convolution at each pixel are bounded (fixed threshold). The mean focus value of each block is computed as: i =1 thresh[lapl (i), Noise] F= N2 N2 where N2 is the number of pixels and the thresh() operator discards values lower than a fixed threshold Noise. 31 Contrast Measure In order to remove irrelevant peaks, the histogram is slightly smoothed by replacing each entry with its mean in a ray 2 neighborhood. Thus, the original histogram entry is replaced with the gray-level: I [i 2] I [i 1] I [i] I [i 1] I [i 2] ~ I [i] = 5 The contrast measure is computed by simply building a histogram for each block and then calculating its deviation from the mean value ~ i =0 i M I [i] 255 ~ i =0 I [i] 255 D= ~ i =0 i I [i] 255 ~ i =0 I [i] 255 M = A high deviation value denotes good contrast and vice versa. Examples (a) Original Color input image; (b) Contrast and focus visually significant detected blocks; (c) Contrast enhancement obtained from RGB image through global correction. 32 Experiments •Input •Local •Global Correction Correction Experiments •Input •Local •Global Correction Correction 33 Miglioramento locale:un esempio Un esempio di elaborazione che fa uso dei valori locali di questi parametri statistici è il seguente: g(x,y)=A(x,y)[f(x,y) – m(x,y)]+m(x,y) dove: A(x,y) = k (M/ σ(x,y)), con 0 < k < 1 m(x.y) e σ(x,y) sono rispettivamente la media e la deviazione standard dei livelli di grigio nell'intorno di (x,y), M è la media globale di f(x,y) e k è una costante. La trasformazione così definita viene utilizzata per calcolare il nuovo valore del pixel centrale dell’intorno. Poiché A è inversamente proporzionale alla varianza, le aree dell'immagine a minore contrasto vengono a guadagnare di più. La media locale è aggiunta per ripristinare l'intensità media dell'immagine nell'intorno. Tecniche di manipolazione locale del contrasto risultano particolarmente adatte ad immagini in cui alcune parti sono accettabili, altre contengono particolari altrettanto significativi ma meno evidenti. Multimedia - Prof. Sebastiano Battiato Multimedia - Prof. Sebastiano Battiato 34 MATLAB histogram function h=imhist(f,bin); P=imhist(f,bin)/numel(f); h1=h(1:10:256); horz=1:10:256; bar(horz,h1); stem(horz,h1, ‘fill’); plot(h); g1=histeq(f,nlev); %Histogram Equalization g2=histeq(f, hspec); %Histogram specification where hspec is a row vector Multimedia - Prof. Sebastiano Battiato MATLAB: imadjust Imadjust è la funzione MATLAB demandata alle trasformazioni (mapping) dei toni di grigio. La sua sintassi è: g=imadjust(f,[low_in,high_in],[low_out,high_out],gamma) Multimedia - Prof. Sebastiano Battiato 35 Filtraggio Spaziale L’argomento è stato già trattato nel corso di IEM. Un pò di notazione è comunque utile e necessaria per il proseguio. In generale il filtraggio (lineare) di un’immagine f con una “filter mask” m x n è data dall’espressione: g ( x, y) = a b ( s, t ) f ( x s, y t ) s = a t = b dove a = (m-1)/2 e b = (n-1)/2. Ovviamente questa operazione va ripetuta per x = 0, 1 , …, M-1 e y = 0, 1, …, N-1 dove M, N sono le dimensioni dell’immagine f. Multimedia - Prof. Sebastiano Battiato Filtraggio Spaziale In questo caso: mn R = i zi i =1 dove i i sono i coefficienti del filtro e gli zi sono i valori dei pixel dell’immagine da filtrare. Il meccanismo qui illustrato è simile al concetto di convoluzione proprio del dominio delle frequenze: da questo deriva il nome assegnato a questi filtri di maschere di convoluzione. Multimedia - Prof. Sebastiano Battiato 36 Operatori e maschere N-box N-binomiale Sobel x,y Laplaciano Edge Enhancing Shifting Noise Reduction (order-statistics filters) Unsharp Masking Multimedia - Prof. Sebastiano Battiato Filtraggio in MATLAB:imfilter >I = imread(‘lena.jpg'); >h = ones(3,3)/9; >I2 = imfilter(I,h); >imshow(I), title(‘Immagine Originale'); >figure, imshow(I2), title(‘Immagine Filtrata’); Multimedia - Prof. Sebastiano Battiato 37 MATLAB: Opzioni per imfilter Multimedia - Prof. Sebastiano Battiato MATLAB: Opzioni per imfilter >Imfilter(I,ones(31), option) Multimedia - Prof. Sebastiano Battiato 38 Filtraggio in MATLAB: fspecial >I = imread(‘volto.jpg'); >h=fspecial('gaussian',[5 5] ,1) >I2 = imfilter(I,h); >imshow(I), title(‘Immagine Originale') >figure, imshow(I2), title(‘Immagine Filtrata'); Multimedia - Prof. Sebastiano Battiato MATLAB: Opzioni per fspecial Nota Bene: Per i filtraggi non lineari si vedano le funzioni nlfilter e colfilt in grado di applicare in stile convoluzione (opzione ‘sliding’) una qualsiasi operazione definita dall’utente e la funzione ordfilt2 usata per i cosiddetti order-statistic filters. Multimedia - Prof. Sebastiano Battiato 39