HISTOGRAM MATCHING Di Raimondo Graziano - Nicolosi Salvatore Multimedia A.A 2013-2014 Introduzione Un istogramma è un grafico che mostra la distribuzione delle varie tonalità di una data immagine digitale Assumendo di lavorare con immagini a scala di grigio, per ogni valore che può assumere un pixel [0-255], l‟istogramma riporta il numero di pixel che assumono quel valore Istogramma L‟istogramma di un‟immagine grayscale avente valori nel range [0, L-1] è una funzione discreta ℎ 𝑟𝑘 = 𝑛𝑘 𝑘 = 0, … , 𝐿 − 1 dove: 𝑟𝑘 è il k-esimo valore (livello di grigio) 𝑛𝑘 è il numero di pixel nell‟immagine aventi il valore (livello di grigio) 𝑟𝑘 Istogramma È pratica comune normalizzare l‟istogramma dividendo ogni componente per il numero totale di pixel dell‟immagine MN (larghezza e altezza) 𝑝 𝑟𝑘 = 𝑛𝑘 𝑀𝑁 𝑘 = 0, … , 𝐿 − 1 dove: 𝑝(𝑟𝑘 ) è una stima della probabilità dell‟occorrenza del livello di intensità 𝑟𝑘 Istogramma Un istogramma rappresenta una fonte di informazioni molto valida; tramite un semplice sguardo è possibile accorgersi di alcuni comuni problemi che possono caratterizzare un‟immagine: sottoesposizione sovraesposizione immagine ben contrastata o mal contrastata posterizzazione, ecc. Uso dell‟istogramma Se l‟istogramma è concentrato sulla sinistra, l‟immagine tende ad essere più scura Se l‟istogramma è concentrato sulla destra, l‟immagine tende ad essere più chiara Uso dell‟istogramma Se l‟immagine è poco contrastata, l‟istogramma tende ad essere spalmato su una piccola regione di valori Se l‟immagine è molto contrastata, l‟istogramma tende a coprire una più ampia fascia di valori Alcune cose da sapere L‟istogramma di un‟immagine non memorizza le informazioni spaziali dei pixel: immagini diverse possono avere lo stesso istogramma Ripasso probabilità Una variabile casuale è una funzione a valori reali definita sugli eventi di uno spazio S In altre parole, per ogni elemento di S esiste un numero reale che è il corrispondente valore della „„funzione‟‟ variabile casuale Esempio. Consideriamo l‟evento del lanciare un dado ed osservarene il risultato. Possiamo definire una variabile casuale x in diversi modi: Il valore numerico del dado (se esce 1 x=1, se esce 2 x=2, ecc) Il risultato pari o dispari (se esce un numero pari x=0, altrimenti x=1) Ecc… Ripasso probabilità La variabile casuale non cambia il valore semplicemente associa ad essi un valore reale degli eventi, Per gestire le variabili casuali nel continuo abbiamo bisogno di alcune modifiche La probabilità non è numerabile nel continuo, come lo è nel discreto (compreso tra 0 e 1) Siamo interessati al caso in cui la variabile casuale x assuma un valore minore o uguale (oppure maggiore o uguale) rispetto ad una costante definita a. Indichiamo ciò con 𝐹 𝑎 = 𝑃(𝑥 ≤ 𝑎) Ripasso probabilità Se la funzione è data per tutti i valori di a, i valori della variabile casuale sono stati definiti. F viene chiamata CDF (Cumulative Distribution Function) o, semplicemente, funzione di distribuzione La PDF (Probability Density Function) di una variabile casuale x è definita come la derivata della sua CDF 𝑝 𝑥 = 𝑑𝐹(𝑥) 𝑑𝑥 La PDF è conosciuta come funzione densità Equalizzazione Denotiamo con la variabile casuale r le intensità di un‟immagine, con r che varia da [0, L-1] Consideriamo le trasformazioni (mappature delle intensità) del tipo 𝑠=𝑇 𝑟 0≤𝑟 ≤𝐿−1 che produce un output di intensità s per ogni pixel dell‟immagine di input di intensità r Si assuma 𝑇 𝑟 una funzione monotona non decrescente nell‟intervallo 0≤𝑟 ≤𝐿−1 0 ≤ 𝑇 𝑟 ≤ 𝐿 − 1 per 0 ≤ 𝑟 ≤ 𝐿 − 1 Equalizzazione I livelli di intensità di un‟immagine possono essere visti come variabili casuali nell‟intervallo [0, L-1]. Uno dei descrittori fondamentali di una variabile casuale è la funzione PDF. Denotiamo con 𝑝𝑟 (𝑟) e 𝑝𝑠 (𝑠) le PDF di 𝑟 ed 𝑠, la teoria della probabilità ci dice che se conosciamo 𝑝𝑟 (𝑟) e 𝑇(𝑟) (dove quest‟ultima è continua e differenziabile nell‟intervallo considerato) allora la PDF della variabile trasformata (mappata) 𝑠 può essere ottenuta da: 𝑑𝑟 𝑝𝑠 𝑠 = 𝑝𝑟 𝑟 𝑑𝑠 Equalizzazione Quindi la PDF della variabile di intensità di output 𝑠 è determinata dalla PDF delle intensità di input 𝑟 e dalla funzione di trasformazione utilizzata 𝑇 𝑟 Tra le varie funzioni di trasformazione, una di maggiore importanza è la seguente 𝑟 𝑠 =𝑇 𝑟 = 𝐿−1 0 𝑝𝑟 𝑤 𝑑𝑤 dove w è la variabile di integrazione. Il membro destro di questa equazione è noto come CDF della variabile casuale 𝑟 Equalizzazione Utilizzando come trasformazione la CDF di 𝑟 si ottiene dunque una immagine con densità di probabilità uniforme dei livelli di grigio. Ne deriva un incremento nella gamma dinamica dei pixel che può avere notevoli effetti sull‟apparenza dell‟immagine La funzione da utilizzare per l‟equalizzazione dell‟istogramma nel caso discreto è la seguente 𝑘 𝑠𝑘 = 𝑇 𝑟𝑘 = 𝐿 − 1 𝑗=0 (𝐿 − 1) 𝑝𝑟 𝑟𝑗 = 𝑀𝑁 𝑘 𝑛𝑗 , 𝑘 = 0, … , 𝐿 − 1 𝑗=0 Consiste nel trasformare ogni pixel di livello 𝑟𝑘 in un pixel di livello 𝑠𝑘 attraverso 𝑇 𝑟𝑘 Equalizzazione L‟algoritmo tenterà di definire inizialmente la densità di probabilità 𝑝𝑟 𝑟𝑗 di ogni livello di grigio e poi costruirà la nuova immagine attraverso una funzione di passaggio basata su questo valore, punto per punto. È interessante notare come l‟equalizzazione possa comportare l‟aumento di rumore e la creazione di falsi contorni da sistemare attraverso opportuni algoritmi di riduzione del rumore. Equalizzazione 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. Equalizzazione È possibile modificare l‟istogramma di un‟immagine rendendo la probabilità 𝑝𝑟 dell‟occorrenza del livello di grigio 𝑟 uniforme. L‟operazione di equalizzazione consiste nell‟allargare la curva dell‟istogramma in modo da sfruttare l‟intera scala di grigi disponibile. Questo permette una migliore distinzione degli oggetti (l‟immagine risulta più contrastata) e solitamente può esser d‟aiuto nell‟elaborazione di un‟immagine sottoesposta o sovraesposta. A livello teorico, l‟equalizzazione tenta di realizzare un istogramma piatto, portando verso una soglia uguale tutti i livelli di grigio, cosa ovviamente non possibile quando lavoriamo nel discreto. Esempio Vantaggi Miglioramento del contrasto dell'immagine equalizzata con toni di grigio tendenti al bianco più visibili rispetto all'immagine originale Colori più nitidi e vivaci nelle immagini a colori che presentano istogrammi di partenza simili in tutti e tre i livelli RGB Maggior visibilità di alcuni dettagli persi per sottoesposizione dell'immagine Svantaggi Presentazione in falsi colori di alcune immagini a colori equalizzate (quando ad esempio i canali di colore RGB presentano istogrammi abbastanza diversi tra loro) Introduzione di rumore o di elementi non presenti nell'immagine originale (ad esempio nel caso di immagini con bordi) Histogram matching L‟equalizzazione di un istogramma genera una funzione di trasformazione che tenta di riprodurre un istogramma con una distribuzione uniforme In alcuni casi è utile specificare la forma dell‟istogramma dell‟immagine di destinazione Questo è ciò di cui si occupa l‟histogram matching Histogram matching Opera a partire da due immagini la prima immagine è detta di riferimento la seconda immagine è quella da modificare Lo scopo è quello di modificare l‟istogramma della seconda immagine in funzione dell‟istogramma della prima immagine Histogram matching Tecnica usata per normalizzare due immagini acquisite con la stessa illuminazione ma con sensori differenti Spesso è utile specificare la “forma” (shape) dell‟istogramma che si vuole ottenere Ricolorazione di immagini a seconda dei colori o toni di grigio presenti in un'altra immagine Histogram matching L‟histogram matching si ottiene nel seguente modo: Si ricava la PDF dell‟immagine di input e da questa si utilizza l‟equazione 𝑟 𝑠 =𝑇 𝑟 =𝐿−1 0 𝑝𝑟 𝑤 𝑑𝑤 per ottenere la funzione di trasformazione 𝑠 Si ricava la PDF dell‟immagine di riferimento e da questa si utilizza l‟equazione 𝑧 𝐺 𝑧 =𝐿−1 0 𝑝𝑧 𝑡 𝑑𝑡 = 𝑠 Per ottenere la funzione di trasformazione 𝐺 𝑧 Histogram matching Da 𝑇 𝑟 = 𝑠 = 𝐺(𝑧), si ricava la trasformazione inversa 𝑧 = 𝐺 −1 (𝑠) Si equalizza l‟immagine di input i cui valori dei pixel sono i valori di s Per ogni pixel dell‟immagine di input con valore s, si applica la precedente funzione inversa per ottenere il valore del pixel corrispondente z nell‟immagine di output In questo modo l‟istogramma dell‟immagine di input sarà approssimato all‟istogramma dell‟immagine di riferimento Comando imhistmatch() Adatta l‟istogramma di un immagine in modo da matchare l‟istogramma dell‟immagine di riferimento B = imhistmatch(A,Ref) If both A and Ref are truecolor RGB images, then each color channel of A is matched independently to the corresponding color channel of Ref. If A is a truecolor RGB image and Ref is a grayscale image, then each channel of A is matched against the single histogram derived from Ref. If A is a grayscale image, then Ref must also be a grayscale image. Images A and Ref need not be equal in size. Tratto da http://www.mathworks.it/it/help/images/ref/imhistmatch.html Equalizzazione o histogram matching? Equalizzazione Histogram matching Rendere uniforme l‟istogramma di un‟immagine Rendere l‟istogramma di un‟immagine simile all‟istogramma di un‟immagine di riferimento Utilizzi in pratica • • Migliorare il contrasto Evidenziare dettagli • Ricolorazione delle immagini Vantaggi • • Semplice e veloce Efficace soprattutto con immagini grayscale • Efficace sia con immagini grayscale che RGB Funziona con immagini di diverso contenuto e dimensione Può introdurre artefatti e falsi colori • Scopo Svantaggi • • • Poco adattabile ad immagini molto irregolari Leggera approssimazione dal continuo al discreto