La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Analisi di Immagini e Dati Biologici Octave/Matlab: il package IMAGE 21 L2-3.

Presentazioni simili


Presentazione sul tema: "Analisi di Immagini e Dati Biologici Octave/Matlab: il package IMAGE 21 L2-3."— Transcript della presentazione:

1 Analisi di Immagini e Dati Biologici Octave/Matlab: il package IMAGE 21 L2-3

2 Il package Octave-Image Package con funzioni per il trattamento delle immagini Suggerita versione > (attuale 2.1.0) Sintassi delle funzioni derivata per compatibilità con quella dell'omologo package di Matlab Funzioni Lettura e scrittura file grafici in diversi formati Funzioni di analisi di un immagine sia in forma RGB che come come 'grayscale' Supporto per – Immagini Binarie – Immagini RGB – Immagini grayscale (scala di grigi) – Immagini indexed

3 Matrici e Immagini In Octave/Matlab una matrice N x M (x 3) rappresenta un immagine Ogni elemento della matrice corrisponde ad un pixel e il valore dell'elemento è l'intensità luminosa di quel pixel La scala di intensità cambia dipendendo dalla classe (tipo) della matrice Immagini a colori si ottengono come sovrapposizione di piani di colore in un modello additivo di generazione dei colori Oppure come immagini indexed dove i pixel sono indici ad una tabella di colori rappresentati in tricromia (RGB)

4 Immagini Binarie Immagini dove ogni pixel è rappresentato solo dai numeri 0,1 Sono solitamente mappe logistiche che identificano una o più regioni di un immagine. Spesso si ottengono studiando quando condizioni sono verificate Esempio: Regioni dove luminosità > soglia Il tipo dati di queste mappe è 'logical' cioè un numero di tipo Booleano La rappresentazione 'naturale' di queste immagini è quella di mettere un pixel nero per 0 e bianco per 1

5 Immagini RGB Rappresentate da 3 piani quindi da una matrice NxMx3. Esempio: immagine RGB nella matrice img – img(i,j,1) rappresenta il canale del rosso (Red) – img(i,j,2) rappresenta il canale del verde (Green) – img(i,j,3) rappresenta il canale del blu (Blue) Se classe matrice è double allora il valore deve essere un numero decimale tra [0,1] Se classe uint8 allora dev'essere un intero [0,255] Talvolta alcuni formati di file (e.g. PNG) memorizzano l'alpha channel che va a costituire un ulteriore layer – In questi casi la struttura della matrice è NxMx4

6 Immagini Grayscale Sono immagini dove ogni pixel è rappresentato da un valore con l'intensità luminosa totale che l'ha colpito Sono importanti per la rappresentazione di base di immagini costruite a partire dalla rilevazione di segnali non ottici, per i quali quindi non esiste una rappresentazione naturale in termini di colori Ammettono varie rappresentazioni interne. uint8 double In ambito medico e in astronomia si usano anche uint16 e uint32

7 Immagini Indexed Immagini indexed Rappresentate da una coppia di matrici – Una matrice NxM contente numeri interi rappresentati gli indici alla tavolozza (palette) – Una matrice Tx3 dove T è il numero di colori nella tavolozza Immagini RGB possono essere convertite in immagini indexed con la funzione rgb2ind – [img,cmap]=rbg2ind(rgbimg); Un immagine indexed può ridurre la dimensione della rappresentazione se il numero di colori/grigi non è troppo grande.

8 Immagini Indexed Non permette di fare elaborazioni pixel-oriented perché l'indice che rappresenta un pixed non può direttamente essere interpretato in termini di luminosità o cromaticità Formato che non permette di essere elaborato direttamente con filtri o altre trasformazioni Utile per manipolare le scale cromatiche cambiando la palette (tavolozza) dei colori senza dove manipolare la pixmap

9 File Input/Output File I/O Informazioni su file grafico: imfinfo('file') octave:3> imfinfo("trigs.png") Filename = /home/manghi/Documents/imaging/lezioni/trigs.png FileModDate = 1-Apr :37:20 FileSize = Height = 900 Width = 1200 BitDepth = 8 Format = PNG LongFormat = Portable Network Graphics XResolution = YResolution = TotalColors = 415 TileName = AnimationDelay = 0 AnimationIterations = 0 ByteOrder = undefined Gamma = 0 Matte = 0 ModulusDepth = 8 Quality = 75 QuantizeColors = 256 ResolutionUnits = undefined ColorType = truecolor View =

10 File Input/Output File I/O Lettura da file: img=imread('file') – Il tipo di file supportati dipende dalle librerie ed utility esterne a Octave disponibili. – Stessi formati di immagini vengono letti e interpretati con strumenti differenti tra diversi OS e anche diverse distribuzioni di Linux – E.G: File.svg vengono letti, ma su Linux il rendering non è garantito funzioni adeguatamente

11 File Input/Output File I/O Scrittura su file di un immagine Funzione (polimorfa) imwrite – imwrite(img, filename) – imwrite(img, filename,fmt) – imwrite(img, filename, fmt, p1, v1, …) – imwrite(img, map, filename,...)

12 File Input/Output Supporto formati grafici L'argomento 'fmt' di imwrite è una stringa che specifica quale formato deve essere usato per salvare in un file un'immagine Se non specificato l'estensione del nome del file viene usata per determinare implicitamente il formato Alcuni dei formati supportati 1)Windows bitmap: 'bmp' 2)Graphics Interchange Format: 'gif' 3)Joint Photographic Experts Group: 'jpg' o 'jpeg' 4)Portable Graymap: 'pgm' 5)Portable Network Graphics: 'pgn' 6)Tagged Image File Format: 'tiff'

13 comandi fondamentali imshow Un comando per il display di un immagine deve esistere! imshow Si appoggia ad un viewer esterno per mostrare le immagini L'argomento è una variabile che contiene una rappresentazione valida di un immagine Se l'argomento non è una rappresentazione valida l'output è indefinito, ma non viene generato un errore Sintassi: imshow(img)

14 imshow Costruiamo un immagine 'grayscale' di dimensione 8x8 L'immagine sara costituita da pixel di valore compreso tra 0 e 1 proporzionale alla somma degli indici della matrice Esercizio: modificare il codice in modo da costruire una immagine 256x256 con gli stessi vincoli Spiegare cosa accade chiamando imshow con il secondo argomento (LIMITS) come [0 0.5] oppure [0.5,1] octave:1> x=y=[1:8]; octave:2> [xx,yy]=meshgrid(x,y); octave:3> img=(xx+yy-2)/(2*max(x)-2); octave:4> imshow(img);

15 Immagini RGB con imshow Costruiamo un analogo esempio per esplorare la struttura di una immagine RGB 1) Creiamo una immagine 8x8 RGB composta da soli 0 della dimensione corretta (come apparirà una volta passata ad imshow?) 2) Costruiamo un'immagine grayscale 8x8 dove il valore del pixel è il minimo tra indice di riga e colonna 3) Assegniamo questa matrice al canale rosso (1) 4) Usiamo imshow per vedere il risultato 5) Ruotiamo la matrice di 90 gradi antiorari e l'assegnamo al canale verde (2) 6) Ruotiamo la matrice di 90 gradi orari e l'assegnamo al canale blu 7) Usiamo imshow per vedere il risultato: un immagine dove si ottengono varie combinazioni di colori a partire dai 3 colori fondamentali + nero

16 Immagini RGB con imshow Codice dell'esempio octave:1> x=y=[1:8]; octave:2> [xx,yy]=meshgrid(x,y); octave:3> rgb=zeros(8,8,3); octave:4> img=min(xx,yy)/max(x); octave:5> rgb(:,:,1)=img; octave:6> imshow(rgb) octave:7> rgb(:,:,2)=rot90(img); octave:8> rgb(:,:,3)=rot90(img,-1); octave:9> imshow(rgb) Riprodurre questo esempio per un Immagine 256x256

17 Funzioni di Libreria Image Package Le funzioni di libreria sono suddivise in capitoli Alcuni capitoli – Analysis and Statistics – Arithmetics – Black and White image functions – Enhancement and Restoration – Filtering and Transforms – Morhophological Operations – Spatial transformations – Types and Type conversions

18 Funzioni di Libreria Image Package Le funzioni di libreria sono suddivise in capitoli Analysis and Statistics – Capitolo specialistico – imhist: calcola l'istogramma di un'immagine – regionprops: una importante funzione che si applica ad immagini binarie per calcolare proprietà di regioni

19 Funzioni di Libreria Image Package Arithmetics Alcune funzioni riproducono le stesse operazioni Octave implementa come operazioni elemento x elemento (somma, divisione....) Queste funzioni sono però ottimizzate in vario modo dal punto di vista computazionale Eseguono controlli aggiuntivi per mantenere i valori del risultato all'interno del range di valori assegnato ad una classe di immagini Possono ritornare immagini in una classe differente

20 Funzioni di Libreria Image Package Black and white image functions Funzioni che quasi sempre iniziano con il prefisso 'bw' e quindi si applicano a immagini binarie Proprietà di regioni ed oggetti individuati come foreground dell'immagine Manipolazione caratterizzazione delle regioni di un'immagine

21 Funzioni di Libreria Image Package Enhancement and Restoration Manipolazione distribuzione intensità dei pixel – Manipolazione contrasto – Equalizzazione istogramma distribuzione – Smoothing di un immagine


Scaricare ppt "Analisi di Immagini e Dati Biologici Octave/Matlab: il package IMAGE 21 L2-3."

Presentazioni simili


Annunci Google