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