Istogramma e trasformazioni di intensità
Download
Report
Transcript Istogramma e trasformazioni di intensità
Analisi di Immagini e Dati Biologici
Caratterizzazione e trasformazioni di intensità di
un'immagine
55
Analisi di Immagini e Dati Biologici
Caratterizzazione e trasformazioni di intensità di
un'immagine
55
Analisi di Base
Assumiamo che le nostre immagini siano
Immagini di intensità di luminosità (grayscale)
Rappresentate da
Interi senza segno [0...255] (uint8 – unsigned integer a 8
bit)
Oppure virgola mobile doppia precisione (double) [0...1]
Rappresentazione Digitalizzata
Caratterizzazione di Base della Qualità:
istogrammi
L'istogramma
Metodo basilare di caratterizzazione di un'immagine
L'istogramma mostra la distribuzione all'interno del
range di luminosità dello strumento dei valori dei
pixel
Applicazione:
Esposizione: per immagini fotografiche l'istogramma
permette di capire se l'immagine sarà sovra-esposta o
sotto-esposta
Contrasto: analisi, correzione
Analisi della dinamica
Histograms
L'istogramma si calcola percorrendo tutti i pixel e contando
quanti pixel hanno un determinato valore
Image Histogram
La somma dei valori
dell'istogramma (integrale) è
NxM (=numero di pixel
dell'immagine)
Semplice da calcolare per
immagini uint8
Per immagini in con bit depth
16 o superiore si ricorre al
binning
Image Histogram
L'istogramma non è l'equivalente di un impronta digitale di un
immagine
Immagini completamente diverse possono avere istogrammi
simili
Si può costruire ad arte immagini con identico istogramma
Image Histogram
Problemi con l'esposizione:
Settori di un istogramma inutilizzati, altri con
frequenza di valori troppo alta
Soprattutto per i valori di luminosità elevata
l'istogramma rileva problemi di sovraesposizione
Image Histogram
Imagine Histogram
Contrasto
Range effettivamente usato dei valori di un
immagine
Differenza tra valore massimo e valore minimo
dell'intensità
Image Histogram
Image Histogram
Dinamica di un immagine (Dynamic Range)
La dinamica di un'immagine è data dal numero di
valori di pixel distinti usati nell'immagine
Maggiore è la dinamica allora maggiore...
La capacità di risoluzione di differenze (in linea di
principio)
La capacità di miglioramento della qualità in caso di
difetti di esposizione o mancanza di contrasto
La possibilità di preservare qualità dell'immagine anche
dopo compressione o altre elaborazioni
Image Histogram
Contrasto vs. Dinamica
Il contrasto può essere modificato alterando
opportunamente i valori dei pixel
La dinamica è una caratteristica costitutiva di
un'immagine
Il miglioramento della dinamica richiede tecniche di
manipolazione che introducono 'nuovi' valori di pixel
Alterazione della Dinamica
Image Histogram
Saturazione
La saturazione avviene quando i valori di pixel agli
estremi della dinamica della fotocamera sono
eccessivamente popolati
Inevitabile se il range di luminosità della
scena/oggetto sono più grandi della dinamica del
sensore
Image Histogram: alterazioni
L'istogramma è un metodo semplice per
rivelare alterazioni dovute a processing
Effetto dell'espansione/riduzione del contrasto
Image Histogram: alterazioni
Alterazioni legate alla compressione
Esempio: immagine compressa dopo essere stata
salvata in un file GIF
Image Histogram: alterazioni
Alterazione dovute a compressione
Esempio: immagine 'semplice' alterata dalla
compressione interna al formato JPEG
Istogramma da Immagine di microscopia AFM
Istogramma da Immagine di microscopia
AFM
Istogramma
logaritmico
img=imread('afpict.tiff');
[counts,x]=imhist(img);
stem(x,log10(counts))
Point Operation
Ogni valore di pixel viene trasformato secondo
una legge che dipende
Dal valore del pixel stesso (legge omogenea)
Dal valore del pixel e dalla posizione (legge non
omogenea)
Point Operation
Inversione di un immagine
Nell'inversione di un immagine ogni valore di pixel
viene trasformato nel suo 'complementare'
Per eseguire correttamente l'operazione si deve
conoscere amax, valore massimo dell'intensità
(saturazione)
Inversione della luminosità
Inversione della luminosità
Il nostro occhio non ha sensibilità costante alle
differenze a tutte le luminosità
Alterazione della luminosità/contrasto
Usando le operazione scalare-matrice
Moltiplicazione: modifica del contrasto perchè
cambia in modo diverso valori di pixel diversi
Addizione: modifica della luminosità perché 'sposta'
tutti i pixel dello stesso valore
Se applicate usando la formula algebrica si deve
tenere conto dei limiti imposti dalla
rappresentazione
Manipolazione luminosità
Limiti specifici dei valori di intensità di un pixel
imposti dalla rappresentazione interna
Le operazioni di moltiplicazione e addizione di
uno scalare in generale non garantiscono il
rispetto di questi limiti
Trasformazione Logaritmica
Iout=C*log(1+a*Iin(u,v))
Regioni a luminosità più bassa
acquistano dinamica a scapito
delle regioni più luminose
La costante a determina la
curvatura
La costante C determina la
normalizzazione in base al valore
massimo di I(u,v) e a
Trasformazione Logaritmica
Trasformazione logaritmica
I' = log( 1 + 100 * I )/log(100)
Trasformazione Esponenziale
Iout=C*((1+a)Iin(u,v) -1)
Regioni a luminosità più alta
acquistano spazio a scapito
delle regioni meno luminose
Trasformazione Esponenziale
Trasformazione Esponenziale
I = ((1+50)^I)-1)/50
Modifica del Contrasto
Modifica automatica del Contrasto
Il valori dei pixel vengono modificati in modo
che il contrasto occupi tutto il range di valori
disponibili
Idealmente, con una legge di proporzionalità, il
valore amin dovrebbe essere riportato a 0, mentre il
valore amaxdovrebbe essere riportato a 255 per un
immagine uint8
Modifica Automatica Contrasto
Modifica del Contrasto
La formula di modifica automatica è sensibile
singoli pixel troppo luminosi o troppo scuri
Si prende quindi una frazione di tutti i pixel e si fa in
modo che essa venga saturata entro 2 limiti
ragionevoli di valore dell'intensità
Si applica su una distribuzione così modificata la
trasformazione proporzionale del contrasto
Modifica Automatica del Contrasto
Modified Auto-Contrast
Modified Auto-Contrast
img=imread(...);
imgadj=imadjust(img);
La funzione imadjust 'satura' l'1% dei pixel ad entrambe le code della
distribuzione ed mappa il resto dell'immagine sull'intervallo [0...1]. L'immagine
deve essere quindi rappresentata con questa scala e in formato double
Modified Auto-Contrast
Histogram equalization
Confronto accurato di immagini analoghe
Ricalcolare istogrammi in modo che sia
paragonabili
Analoga struttura
Stesso contrasto
Varie tecniche a disposizione
Equalizzazione: riportare ad un andamento dato
Uniforme
Iperbolica
Specificazione: imporre l'istogramma di una
immagine data
Equalizzazione
Strategia: si parte dal presupposto che una
immagine di buona qualità ha un istogramma
con una distribuizione (quasi) uniforme
la distribuizione dei pixel non essendo continua non
è possibile realizzare una distribuzione realmente
Si usa una soluzione approssimata dove
l'istogramma finale ha una distribuzione quasi
uniforme solo “in media”
Equalizzazione Uniforme
Equalizzazione Uniforme
Equalizzazione Uniforme
Function File: J = histeq (I, n)
Histogram equalization of a gray-scale image. The histogram contains n bins,
which defaults to 64.
I: Image in double format, with values from 0.0 to 1.0
J: Returned image, in double format as well
See also: imhist
Package: image
Manipolazione Contrasto: altri approcci
Histogram
specification
L'istogramma di
un immagine è
rimodulato in
modo che abbia
un andamento
dato
Gli istogrammi
cumulativi
servono a
rimappare i valori
Manipolazione Contrasto: altri approcci
Aggiustamento secondo un istogramma dato:
l'istogramma della funzione originale viene
collocato all'interno della funzione cumulativa di
un istogramma dato
Manipolazione Contrasto: altri approcci
Imposizione dell'istogramma (cumulativo)
secondo un andamento linare a tratti
Manipolazione Contrasto: altri approcci
Manipolazione Contrasto: altri approcci
Thresholding
Selezione di regioni di un immagine in base ad un
valore di soglia (threshold) di luminosità
Determinazione 'manuale': composizione di una
immagine binaria a partire da un confronto tra la
matrice dell'immagine e un valore di soglia
La soglia determina cosa è da considerare sfondo
(background) oppure oggetto
Determinazione in base a vari criteri tramite la funzione
graythresh
Thresholding: Otsu method
Default per graythresh
Assumiamo che l'istogramma abbia un solo massimo
Ogni valore di intensità definisce 2 regioni
dell'istogramma
La soglia calcolata con il metodo di Otsu è il valore di
intensità che massimizza la varianza interclasse (e
minimizza la varianza intraclasse)
Thresholding con il Metodo di Otsu
im = imread('rice.png');
im = mat2gray(im);
level = graythresh(im);
imb = im2bw(im,level);
imshow(imb)
Thresholding: confronto di vari metodi
Confronto tra immagine originaria e thresholding con
Otsu
Intermodes
Intermeans
MaxEntropy