cerca
Elaborazione Delle Immagini - Lab 0
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Elaborazione Delle Immagini - Lab 0

Torna alla pagina di Elaborazione Delle Immagini


:: Elaborazione Delle Immagini - Lab 0::

Laboratorio 06/03/2009

Slide di Riferimento: Lab 0

Intro

Nel laboratorio di Elaborazione delle Immagini si paciuga con il programma MATLAB.
Durante il primo laboratorio abbiamo visto soltanto l'ambiente MATLAB in generale e alcuni comandi per iniziare ad interagire con l'interfaccia e l'elaborazione delle immagini.

Comandi Trattati

Prima di cominciare ad utilizzare MATLAB in questo contesto bisogna ricordare che:
OGNI IMMAGINE è UNA MATRICE E OGNI MATRICE è UN'IMMAGINE!
è importante perché la maggior parte dei comandi che utilizzeremo sfrutteranno questo aspetto.
NOTA1: alcuni comandi si trovano già nella pagina di Matlab presente su Swappa, però successivamente ci focalizzeremo soprattutto sui comandi che ovviamente trattano le immagini.

NOTA2: i comandi che inserite in MatLab rimangono in memoria e se non pulite la cronologia potete visualizzare tutti i comandi inseriti anche una settimana prima.

COMANDI

  • help apre l'help di matlab visualizzato in modo balordo.
  • doc apre l'help di matlab in modo figoso e più leggibile.
  • whos ci restituisce le variabili che abbiamo utilizzato e sono in memoria con svariate caratteristiche.
  • clear all ripulisce la memoria, quindi se premete clear all e poi cercate di visualizzare le variabili con whos non vedrete nulla fino a quando non le riutilizzerete.
  • size(nomeVariabile) restituisce la dimensione righe/colonne. Es: 496*600
  • tic, comandoEseguito, toc tic e toc restituiscono il tempo che il programma ci ha impiegato ad eseguire il comando che si trova tra tic e toc, quindi corrispondono ad una sorta di tempo di avvio e tempo di fine.
  • ; se mettiamo il ; alla fine di un comando questo fa in modo che non venga visualizzato l'output. Se ad esempio inseriamo un'equazione con il punto e virgola alla fine verranno fatti i calcoli, ma il risultato non verrà visualizzato.
  • edit (seguito dal nome del file con estensione .m)apre l'editor del programma, che vi permette di inserire qualsiasi linguaggio supportato da Matlab. E' possibile ad esempio inserire codice C o codice Java che verrà utilizzato dal programma per "lavorare" sull'immagine.
    Da notare che il tempo di esecuzione sarà superiore rispetto ad un qualsiasi compilatore C/Java.
    La sintassi è molto simile a quella del Fortran, dopo ne vediamo un esempio.
  • [tipoRitornato1, tipoRitornato2]: indica i tipi ritornati. Notiamo quindi che in MatLab è possibile ritornare più di un elemento per volta. Es: [M, N] ritorna righe e colonne.

Ora vediamo i comandi che ci interessano maggiormente:
NOTA: quando dobbiamo operare sulle immagini dobbiamo andare nella cartella che le contiene, possiamo utilizzare i comandi unix cd(per cambiare cartella) e ls (per visualizzare tutti i file presenti nella cartella), oppure cambiare la cartella direttamente tramite programma in modo grafico.

  • imshow(nome) mostra l'immagine inserita nelle parentesi tonde.
  • imfinfo('nomeImmagine.estensione') restituisce l'header dell'immagine, quindi tutte le informazioni che la riguardano. La quantità di queste dipende dall'estensione dell'immagine. Ad esempio se abbiamo un'immagine .jpg avremo molte meno informazioni rispetto ad un'immagine con estensione .tif, in quanto la prima è compressa mentre la seconda no.
  • imread('nomeImmagine.estensione') questo comando permette di leggere l'immagine inserendo tra parentesi tonde il nome dell'immagine specificando l'estensione.
    Questo comando permette di assegnare l'immagine ad una variabile.
  • impixelinfo(gcf) permette di visualizzare le coordinate dei pixel e i valori RGB mentre si trascina il cursore sull'immagine.
    gcf significa get current figure e serve appunto per riferirsi all'immagine corrente.
  • imdistline(gca) inserisce un asse all'interno dell'immagine e permette quindi di vedere la distanza tra due pixel. Quest'asse è trascinabile e modificabile.
    gca significa get current axis.
  • imwrite(nomeVariabile,'nomeImmagine.estensione') permette di cambiare il nome e l'estensione all'immagine.
    Nelle parentesi tonde vanno inseriti a sinistra il nome della variabile che contiene l'immagine, mentre tra apici singoli il nuovo nome dell'immagine con specificata l'estensione che può essere differente da quella precedente.
    L'esecuzione del comando creerà un nuovo file con il nome e l'estensione specificati.
  • mean(f(i)) restituisce la media dei valori dell'immagine. Si ottiene lo stesso risultato con mean(mean(f)).
  • : i duePunti permettono di scegliere un range di valori su cui operare oppure con quale passo scorrere l'immagine.
    Es: comando(184:286, 128:384) significa che operiamo sui pixel da 184 a 286 sulle righe e sui pixel da 128 a 384 sulle colonne.
    Es: comando(1:2:end) significa che il comando opera su ogni riga con passo 2 fino alla fine dell'immagine.

Esempi


Torna alla pagina di Elaborazione Delle Immagini