1 / 17

Analisi di Immagini e Dati Biologici

Octave/Matlab: il package IMAGE. Analisi di Immagini e Dati Biologici. 21. L6. Il package Octave-Image. Package con funzioni per il trattamento delle immagini Suggerita versione > 2.0.0 (attuale 2.1.0)

uma-sanford
Télécharger la présentation

Analisi di Immagini e Dati Biologici

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Octave/Matlab: il package IMAGE Analisi di Immagini e Dati Biologici 21 L6

  2. Il package Octave-Image • Package con funzioni per il trattamento delle immagini • Suggerita versione > 2.0.0 (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-2013 02:37:20 FileSize = 86725 Height = 900 Width = 1200 BitDepth = 8 Format = PNG LongFormat = Portable Network Graphics XResolution = 59.060 YResolution = 59.060 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 • Windows bitmap: 'bmp' • Graphics Interchange Format: 'gif' • Joint Photographic Experts Group: 'jpg' o 'jpeg' • Portable Graymap: 'pgm' • Portable Network Graphics: 'pgn' • Tagged Image File Format: 'tiff'

  13. comandi fondamentali imshow • Un comando per il display di un immagine deve esistere! • → imshow • Si appoggia ad un programma 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 • Creiamo una immagine 8x8 RGB composta da soli 0 della dimensione corretta (come apparirà una volta passata ad imshow?) • Costruiamo un'immagine grayscale 8x8 dove il valore del pixel è il minimo tra indice di riga e colonna • Assegniamo questa matrice al canale rosso (1) • Usiamo imshow per vedere il risultato • Ruotiamo la matrice di 90 gradi antiorari e l'assegnamo al canale verde (2) • Ruotiamo la matrice di 90 gradi orari e l'assegnamo al canale blu • 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

More Related