Analisi di Immagini e Dati Biologici

Slides:



Advertisements
Presentazioni simili
DI3 – Dip. Ing.Industriale e dell’Informazione
Advertisements

Introduzione al linguaggio C++
8) GLI INTERVALLI DI CONFIDENZA
Laboratorio Processi Stocastici
Rappresentazione di Numeri Reali
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Sistemi di numerazione e codici
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
Histogram L’istogramma è un grafico che rappresenta il numero di pixel di un certo valore tonale presenti nell’immagine. Un istogramma aiuta quindi a comprendere.
Pierangelo Degano, Emanuel Castellarin, Laura Passaponti
Fogli elettronici Microsoft Excel.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Ricerca della Legge di Controllo
Proprietà di un Gas Può essere compresso facilmente
Analisi delle corrispondenze
OPERAZIONI CON TRINOMI DI II° GRADO
Algebra matriciale e linguaggio matriciale in MATLAB
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Elaborazione (digitale) delle immagini
Le funzioni.
Parte I (introduzione) Taratura degli strumenti (cfr: UNI 4546) Si parla di taratura in regime statico se lo strumento verrà utilizzato soltanto per misurare.
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
Trattamento Immagini (parte 2)
Analisi di Immagini e Dati Biologici
Analisi di Immagini e Dati Biologici
Analisi di Immagini e Dati Biologici
Modelli del colore 3 Daniele Marini.
Trasformazioni di intensità Filtraggio spaziale
Histogram and region based processing
METODI E CONTROLLI STATISTICI DI PROCESSO
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Radix-Sort(A,d) // A[i] = cd...c2c1
La modifica degli istogrammi
Diagrammi 2D e 3D Funzioni di ordine superiore
Cenni teorici. La corrente elettrica dal punto di vista microscopico
Sul problema del gamma Daniele Marini.
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
DIGITALIAZZAZIONE Di Alessio.
OPERAZIONI CON TRINOMI DI II° GRADO
Trattamento Immagini (parte 2)
Tag TABLE. Oltre ad avere la funzione di rappresentare dati di ogni genere allineati in righe e colonne, le tabelle in HTML si utilizzano per costruire.
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
Informazione multimediale Lettere e numeri non costituiscono le uniche informazioni utilizzate dagli elaboratori ma ci sono sempre piu’ applicazioni che.
Accenni di analisi monovariata e bivariata
Strumenti statistici in Excell
Analisi di Immagini e Dati Biologici
Analisi di Immagini e Dati Biologici
Rappresentazione della Informazione
Rappresentazioni a lunghezza fissa: problemi
Rappresentazione in virgola mobile (floating-point) Permette di rappresentare numeri con ordini di grandezza molto differenti utilizzando per la rappresentazione.
Fondamenti di Informatica
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 © 1999 Roberto Bisiani Overflow n Overflow  traboccamento Si verifica se il risultato di un’operazione non puo’ essere rappresentato con il numero di.
Rappresentazione dell'informazione
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
La codifica dei numeri.
Conversione binario-ottale/esadecimale
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Rappresentazione dei numeri
L’analisi di regressione e correlazione Prof. Luigi Piemontese.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Distribuzioni limite La distribuzione normale Si consideri una variabile casuale rappresentata mediante una combinazione lineare di altre variabili casuali.
La funzione CASUALE. Gli istogrammi.
Transcript della presentazione:

Analisi di Immagini e Dati Biologici Intensity Transformations L3-1 58

Analisi di Base Assumiamo che le nostre immagini siano Immagini di intensità di luminosità (grayscale) Rappresentate da Interi senza segno [0...255] (uint8) Oppure virgola mobile doppia precisione (double) [0...1]

Conversione a grayscale Octave/Matlab usano la funzione rgb2gray → rgb2gray accetta come argomento una matrice RGB (NxMx3) → Il risultato preserva la rappresentazione binaria (uint8->uint8 etc.) → Il risultato è una matrice NxM dove per ogni pixel la terna (R,G,B) è sostituito da un unico valore di luminosità rappresentato dalla luminanza di quel colore ottenuta con la funzione rgb2ntsc La luminanza è definita da una formula che tiene in considerazione la struttura del nostro sistema percettivo Y = 0.299*R+0.587*G+0.114*B

Conversione a 'double' → mat2gray: accetta una matrice come argomento Esegue una redifinizione di scala e rappresentazione binaria restituisce una matrice di identica dimensione con rappresentazione binaria 'double' i valori di intensità sono compresi nell'intervallo [0...1] La funzione accetta un secondo argomento per immagini che hanno un range non standard e lo prende come riferimento Se l'argomento è una matrice RGB (NxMx3) mat2gray opera indipendentemente su ciascun piano di colore

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à sovraesposta o sottoesposta 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

Image Histogram La funzione imhist di Octave/Matlab octave:5> img=imread('cameraman.tif'); octave:6> imshow(img) octave:7> clf octave:8> imhist (img)

Istogramma da Immagine di microscopia AF L'istogramma di un immagine può dipendere dal tipo di tecnica usata per la raccolta di informazioni

Istogramma da Immagine di microscopia AF 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 dalle coordinate del pixel (legge non-omogenea) L'effettiva forma della trasformazione può dipendere dal primo o entrambi i criteri

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 che dipende dal formato interno (double, unit8, unit16) Il package octave-image ha la funzione imcomplement

Inversione della luminosità Codice octave octave:14> clf octave:15> imread('cameraman.tif') octave:16> imshow(img) octave:18> class(img) ans = uint8 octave:19> invimg=255-img; octave:20> imshow(invimg)

Inversione della luminosità Il nostro occhio non ha sensibilità costante alle differenze a tutte le luminosità La capacità di discriminazione dell'occhio umano è più alta quando le intensità sono più basse

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 Octave forza gli elementi di variabili e matrici uint8 ad essere all'interno del range [0...255] Sulle matrici di intensità in formato double invece i vincoli all'interno dell'intervallo [0,1] devono essere forzati

Manipolazione Luminosità Esercizio: codice per manipolazione della luminosità di un'immagine Strategia: percorrere tutti i pixel e applicare a ciascuno di essi la trasformazione di intensità Approccio: usare due cicli for...endfor annidati Un ciclo per l'indice di riga Un ciclo per l'indice di colonna I cicli for...endfor definiscono un blocco di linee di codice che devono essere eseguite N volte

% leggiamo l'immagine dal file img=imread('afmicro.tiff'); % convertiamo l'immagine in un immagine grayscale imggr=rgb2gray(img); % questa operazione modifica la classe di imggr da uint8 a double imggr=mat2gray(imggr); % fattore di alterazione dell'intensità fattore= 1.2; % creiamo una matrice di identica dimensione imgnuova=zeros(size(imggr)); % Si procede con la modifica di ogni pixel verificando % che il risultato sia vincolato all'interno dell'intervallo % dei valori propri della rappresentazione di questa immagine (clamping) [righe colonne] = size(imggr); for riga=1:righe for colonna=1:colonne nuovo_pixel = fattore * imggr(riga,colonna); if (nuovo_pixel > 1) nuovo_pixel = 1; endif % se il fattore fosse negativo si dovrebbe verificare % anche il caso nuovo_pixel < 0 e imporre che sia uguale a zero. % In questo esempio senza pretese di generalità sappiamo che % fattore > 0 imgnuova(riga,colonna) = nuovo_pixel; endfor

Manipolazione Luminosità Secondo approccio Applicare la formula a tutta la matrice dell'immagine Selezionare gli indici degli elementi che escono dal range ammesso Assegnare ad essi il valore limite

Manipolazione luminosità % leggiamo l'immagine dal file, la convertiamo in un immagine 'grayscale' % e quindi fissiamo il valore del fattore di alterazione dell'intensità % luminosa img=imread('picts/afmicro.tiff'); imggr=rgb2gray(img); % questa operazione modifica la classe di imggr % da uint8 a double imggr=mat2gray(imggr); fattore= 1.2; imgnuova = fattore * imggr; % immagine binaria dei pixel che eccedono i valori tra [0...1] overshoots = imgnuova > 1; % la sintassi di octave accetta una matrice binaria come argomento % delle parentesi di una matrice, eseguendo un assegnazione solo % agli elementi corrispondenti agli 1 imgnuova(overshoots) = 1;

Trasformazione Logaritmica Più interessante la trasformazione logaritmica Iout=C*ln(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)

Trasformazione Logaritmica

Trasformazione Esponenziale Iout=C*((1+a)Iin(u,v) -1) Regioni a luminosità più alta acquistano dinamica a scapito delle regioni meno luminose

Trasformazione Esponenziale

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

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 il valore amin dovrebbe essere riportato a 0, mentre il valore amaxdovrebbe essere riportato a 255 per un immagine uint8 con una legge di proporzionalità

Modifica Automatica Contrasto

Modifica Automatica del 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

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 Imposizione dell'istogramma (cumulativo) secondo un andamento linare a tratti

Manipolazione Contrasto: altri approcci

Manipolazione Contrasto: altri approcci

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