Rappresentazione delle immagini



Похожие документы
Elaborazioni nel dominio spaziale (1)

Elaborazioni nel dominio spaziale (1) Soluzioni

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

Guida all uso di Java Diagrammi ER

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Plate Locator Riconoscimento Automatico di Targhe

Introduzione. Installare EMAS Logo Generator

La codifica delle immagini

Dati importati/esportati

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

On-line Corsi d Informatica sul web

C M A P M IONAM A E M NT N O

On-line Corsi d Informatica sul Web

1. Le macro in Access 2000/2003

[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina

Immagini digitali. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Immagini digitali

Database 1 biblioteca universitaria. Testo del quesito

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Comando STAMPA. Attiva la finestra di dialogo nella quale vengono impostati i parametri per ottenere tavole stampate:

8.9 CREARE UNA TABELLA PIVOT

Il controllo della visualizzazione

IL MIO PRIMO SITO: NEWS

Gestire immagini e grafica con Word 2010

Introduzione. AndreaMosaic Release Copyright Andrea Denzler Pagina 2 di 6

PDF created with pdffactory trial version

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

Capitolo V : Il colore nelle immagini digitali

Capitolo3. Si apre la seguente finestra. Figura 29. Proprietà immagine di sfondo. - Università degli Studi della Repubblica di San Marino -

EasyPrint v4.15. Gadget e calendari. Manuale Utente

La grafica con Word. La parte evidenziata è una Riga. La parte evidenziata è una Colonna. La parte evidenziata è una Cella

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Informatica grafica e Multimedialità. 4 Immagini grafiche

Immagini digitali Appunti per la classe 3 R a cura del prof. ing. Mario Catalano

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Modificare impostazioni e scambiare documenti

Tutorial 17. Come creare un cancello personalizzato e inserirlo in libreria

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

4 3 4 = 4 x x x 10 0 aaa

PHOTOSHOP BREVE TUTORIAL

Elaborazione nel dominio della frequenza Soluzioni

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

Il calendario di Windows Vista

Le query di raggruppamento

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

Le immagini digitali. formati, caratteristiche e uso. Testo e foto di Mario Ceppi

STAMPA UNIONE DI WORD

GESTIONE DI FINESTRE, FILE E CARTELLE con Windows XP

MANUALE EDICOLA 04.05

Appunti sull utilizzo del software gvsig, a cura dell ing. Ernesto Sferlazza

Fotografia corso base. Educazione Permanente Treviso. Specifiche digitali. Federico Covre.

COSTRUIAMO UN AEROMODELLO 3D 4

Gestione Rapporti (Calcolo Aree)

Interpolazione di immagini

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

IL MIO PRIMO SITO NEWS USANDO GLI SCHEDARI

INFORMATICA E GRAFICA PER IL WEB

Modulo 6 Strumenti di presentazione

Tabelle 3.4. Unità didattica. Copyright 2009 Apogeo. Obiettivi. Prerequisiti

GENERAZIONE PREVENTIVI

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

Istruzioni per l uso dei programmi MomCad, TraveCon, TraveFon

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

Eclipse - Nozioni Base

Il colore. IGEA febbraio 2007

4. Fondamenti per la produttività informatica

Avvio di Internet ed esplorazione di pagine Web.

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Come modificare la propria Home Page e gli elementi correlati

FUNZIONI DI IMPAGINAZIONE DI WORD

Matlab: Gestione avanzata dei file

Guida Software GestioneSpiaggia.it

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

Uso di base delle funzioni in Microsoft Excel

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali.

Word prima lezione. Prof. Raffaele Palladino

Corso integrato di informatica, statistica e analisi dei dati sperimentali Altri esercizi_esercitazione V

RAPPRESENTAZIONE GRAFICA E ANALISI DEI DATI SPERIMENTALI CON EXCEL

6.9. Formati-file. Formati-file in SilverFast. Scrittura di file in diversi formati

Office 2007 Lezione 07. Gestione delle immagini

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Mac Application Manager 1.3 (SOLO PER TIGER)

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Codifica delle immagini

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

L ambiente grafico e le viste

Tabella 1 Figura 1 Figura 2 Figura 3 Figura 4

Word per iniziare: aprire il programma

NON LASCIAMOLO SOLO! TUTORIAL PER CREARE COMPONENT 2D IN SKETCHUP CHE GENERINO OMBRE E SI ORIENTINO VERSO IL PUNTO DI VISTA

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

ESEMPIO DI QUERY SUL FILE Formario_minuscolo

I Codici Documento consentono di classificare le informazioni e di organizzare in modo logico l archiviazione dei file.

La codifica delle immagini

Tutorial 3DRoom. 3DRoom

Office 2007 Lezione 02. Le operazioni più

NUOVO SISTEMA AGGIORNAMENTO DA FYO

Транскрипт:

Elaborazione di Segnali Multimediali a.a. 2013/2014 Rappresentazione delle immagini L.Verdoliva In questa prima lezione vedremo come si rappresentano diversi tipi immagini digitali in Matlab. 1 Immagini su scala di grigio Un immagine digitale (monocromatica) può essere rappresentata in Matlab come una matrice bidimensionale il cui generico campione x(m, n) (pixel) varia nel range [0, K 1]. Le immagini sono quindi rappresentate con K livelli di grigio, e ogni pixel è codificato con log 2 K bit. Scriviamo i comandi Matlab per leggere da file un immagine in formato JPEG, e che ci consentono perciò di memorizzarne i valori in una matrice: x = imread( nome_file.jpg ); [M,N] = size(x); whos; % leggiamo il file % memorizziamo le dimensioni in M e N % cosa abbiamo adesso in memoria? Attraverso il comando imread è possibile leggere immagini con formato standard come jpeg, tiff, gif, bmp ed altri. Con il comando help imread potete verificare esattamente quali sono i formati supportati dalla versione di Matlab che state utilizzando. Se l immagine invece è in formato grezzo (cioè il file non ha un header, per cui l estensione può essere qualsiasi) è necessario conoscerne le dimensioni e il formato. Per esempio, se l immagine è 512 512 e il tipo di dato è intero senza segno su 8 bit, la lettura avviene con i seguenti comandi: fid = fopen( house.y, r ); % apertura del file in lettura x = fread(fid,[512 512], uint8 ); % lettura dei dati x = x ; % immagine trasposta fclose(fid); % rilascio del file whos x; % quali sono le caratteristiche di X? Matlab legge per colonne quindi l immagine va trasposta per una corretta visualizzazione. Fate attenzione al fatto che le immagini che volete leggere devono trovarsi nella directory corrente o nel path; in alternativa potete dare il percorso completo. Notate (con whos) come il comando imread memorizzi i valori come interi senza segno su 8 bit, mentre fread li converta in double (64 bit). Quando si usa imread conviene poi effettuare una conversione in double, perché molte operazioni in matlab non sono definite sul tipo uint8. La conversione si ottiene facilmente col comando x=double(x). 1

Immagini su scala di grigio 2 Una volta in memoria l immagine può essere visualizzata nel modo seguente: figure(1); % apre la figura 1 image(x); % visualizza l argomento come immagine Se x(m, n) = k, il comando image disegna nel punto (m, n) un pixel col k-esimo colore disponibile. I colori sono definiti assegnando le corrispondenti quantità di rosso, verde e blu (RGB) nella palette, tramite il comando colormap. Per definire una palette con K toni di grigio si può usare il comando gray; ad esempio, attraverso il comando colormap(gray(256)) si definisce una tavolozza di colori su livelli di grigio, tale da associare pixel scuri a valori piccoli (0, 1...) e pixel chiari a valori grandi (...254, 255). Tramite il comando colorbar potete aggiungere alla figura una barra che visualizza l associazione tra colori e valori dei pixel. Per default, il comando image produce un immagine il cui rapporto d aspetto (larghezza diviso altezza) non corrisponde a quello originale, creando quindi un immagine distorta. Per superare il problema usate il comando axis equal (se l immagine è quadrata) oppure più in generale axis image. Proviamo a visualizzare l immagine pout.tif (già presente nella libreria di immagini del matlab) con i seguenti comandi: x = imread( pout.tif ); figure; image(x); colormap(gray(256)); axis image; Confrontate adesso questa immagine con quella che otterreste usando il comando di visualizzazione imagesc: figure; imagesc(x); colormap(gray(256)); axis image; Noterete che la seconda immagine è più nitida, questo perche il comando imagesc effettua un automatico riscalamento dei dati, in modo da usare al meglio la colormap (definita nel nostro caso su 256 livelli di grigio) e avere una migliore visualizzazione. In matlab esiste il toolbox images in cui sono definite numerose funzioni utili per l image processing, così come quelle mostrate di seguito. Assegnato un file con uno specifico formato (jpeg, tif, png,...) è possibile avere una serie di informazioni sui dati memorizzati con il comando: imfinfo pout.tif Per la visualizzazione è possibile usare la funzione imshow(x), che si comporta come il comando image, con piccole differenze sui formati. Se x è double, 0 viene visualizzato come nero, 1 come bianco e tutti i valori intermedi come grigi su 256 possibili valori (di default). Se, invece, x è uint8 (uint16), 255 (65535) è visualizzato come bianco. E possibile poi specificare la dinamica dei dati [low high], che potrebbe non essere quella convenzionale, nel seguente modo: imshow(x,[low high]); Se non si forniscono indicazioni sul valore minimo e massimo (imshow(x,[ ])), allora i dati vengono scalati settando low e high al minimo e massimo valore presenti, così come fa imagesc. Se l immagine ha dimensioni molto grandi e se la si vuole analizzare con dettaglio avendo una serie di informazioni sui valori dei pixel si

Immagini a colori 3 può usare il comando imtool(x) oppure imtool( pout.tif ); ovviamente in quest ultimo caso l immagine non sarà memorizzata nel workspace di matlab. Noterete come si sono aperte due finestre: Overview window. Mostra l immagine all interno di un rettangolo, le cui dimensioni possono essere modificate per stabilire quali parti dell immagine si vogliono visualizzare nella finestra principale; Image Information window. Permette di avere molte informazioni sull immagine: facendo scorrere il mouse sull immagine si conosce la posizione e il valore di ogni pixel, inoltre è possibile esaminare i valori dei pixel in specifiche regioni cliccando il secondo pulsante della finestra. Esplorate i diversi pulsanti disponibili e cercate di comprendere cosa fanno. Tenete presente che imtool mostra l immagine al 100 %, cioè ad ogni pixel dell immagine corrisponde un pixel dello schermo. Ricordate che per chiudere le immagini aperte con il comando imtool è necessario digitare imtool close all e non semplicemente close all. In matlab dopo aver elaborato un immagine e possibile salvarla in un file con un ben determinato formato con il comando imwrite. Nell ipotesi in cui i valori da scrivere su file siano memorizzati nella variabile x: x = uint8(x); % tipo di dato supportato da JPEG imwrite(x, immagine.jpg, JPEG, Quality,70); In questo modo si sta anche effettuando automaticamente una compressione JPEG con fattore di qualità 70 (tale parametro varia da 0 (qualità peggiore) a 100 (qualità migliore)). Provate a salvare un immagine di prova a diversi fattori di qualità e visualizzatela. Se però l immagine che volete salvare è double e non volete perdere informazione la cosa migliore è salvare i dati con fwrite senza un header, nel seguente modo: fid = fopen( immagine.y, wb ); % apertura del file in scrittura fwrite(fid,x, double ); % scrittura dei dati fclose(fid); % rilascio del file Attenti al fatto che se volete avere coerenza nella lettura dei dati, in quest ultimo caso va effettuata un operazione di trasposizione prima di salvare l immagine. Un altro modo di salvare i dati in matlab è quello di usare il comando save, molto utile qualora si vogliano per esempio salvare tutte le variabili che si trovano nel workspace: save dati.mat Ovviamente se volete salvarne solo alcune di variabili, basta elencarle dopo il nome del file (il comando load vi permette di caricarle nuovamente nel workspace). 2 Immagini a colori Un immagine a colori in formato standard (JPG, BMP, TIF... ) può facilmente essere importata in Matlab con il comando imread. In questo modo si crea una variabile che è una matrice di dimensioni M N 3, le cui componenti coincidono con le componenti di rosso, verde e blu dell immagine (spazio RGB). Le tre immagini possono essere visualizzate singolarmente su scala di grigi e definiscono le quantità di rosso, verde e blu da mescolare per ottenere il pixel a colori sullo schermo.

Immagini a colori 4 x = imread( fragole.jpg ); figure; image(x); axis image; whos figure; R = x(:,:,1); image(r); colormap(gray(256)); axis image; figure; G = x(:,:,2); image(g); colormap(gray(256)); axis image; figure; B = x(:,:,3); image(b); colormap(gray(256)); axis image; Il comando image visualizza un immagine a colori, operando in modo diverso se i dati sono di tipo uint8 oppure double. Nel primo caso i valori della variabile devono essere compresi tra 0 e 255 (il che si verifica ad esempio usando imread). Nel secondo, invece, devono essere normalizzati tra 0 e 1. Notate che quando si visualizza un immagine a colori, non ha senso specificare una colormap. Estraendo poi le tre immagini da x è possibile visualizzare le componenti RGB (Red, Green, Blue): i valori più luminosi si ottengono in corrispondenza delle componenti di colore che sono presenti maggiormente nell immagine. Facciamo un esperimento annullando la prima componente (R) e poi ricostruiamo l immagine: M = size(x,1); N = size(x,2); R = zeros(m,n); y = cat(3,r,g,b); figure; image(y); axis image; Provate ad annullare singolarmente anche le altre due componenti e visualizzate l immagine ricostruita. Nel caso in cui si voglia costruire una struttura multidimensionale costituita da diverse immagini a colori è possibile farlo nel seguente modo: z = cat(4,x1,x2,x3,x4,x5); % creazione array multiframe figure(1); % mostra la terza immagine a video imshow(z(:,:,:,3)); figure(2); % mostra due immagini affiancate subplot(1,2,1); imshow(z(:,:,:,1)); subplot(1,2,2); imshow(z(:,:,:,2)); figure(3); % mostra tutte le immagini montage(z); 2.1 Esercizi proposti 1. Lettura e visualizzazione di un immagine. Provate a scrivere una funzione in grado di visualizzare le immagini sia in formato JPEG che in formato grezzo. Il prototipo delle funzioni deve essere rispettivamente: function x=vedijpg(nomefile) e function x=vediraw(nomefile,nrighe,ncolonne,tipo). 2. Uso della colormap. Fate degli esperimenti con l immagine pout.tif e granelli.tif, al variare del numero di livelli di grigio usati nella colormap (2,4,8,...,256), usando sia il comando image che imagesc. Quale operazione vi permette di mostrare un immagine con una risoluzione sui livelli di grigio piu bassa? Perchè a volte l immagine si vede tutta bianca? 3. Creazione di palette. Il comando colormap produce in uscita una matrice che ha esattamente tre colonne e un numero di righe pari a K: ogni riga viene interpretata come un colore, rappresentato da tre valori compresi tra 0 e 1, il primo dei quali specifica l intensità del rosso, il secondo quella del verde e il terzo

Immagini a colori 5 quella del blu. Quindi se vogliamo creare una palette di livelli di grigio (così come fa automaticamente il comando colormap(gray(256)), dobbiamo digitare i seguenti comandi: L = [0:1/255:1] ; r=1; g=1; b=1; colormap([r*l g*l b*l]); % definizione di K livelli di luminanza % pesi da assegnare a R, G e B % creazione della palette Modificando i pesi r,g e b l immagine viene visualizzata nei toni dei vari colori dell arcobaleno. Create una palette in toni di rosso invece che in toni di grigio, ed utilizzatela per visualizzare un immagine. Ripetete l esercizio usando una palette in toni di giallo. 4. Rappresentazione in falsi colori. La rappresentazione in pseudocolori (o falsi colori) consiste nel visualizzare a colori un immagine monocromatica. L obiettivo è quello di migliorare l interpretazione di un immagine su livelli di grigio o semplicemente visualizzarla più facilmente. Infatti, l occhio umano è in grado di discriminare migliaia di variazioni di colore rispetto a qualche decina di livelli di grigio. Un esempio di rappresentazione in falsi colori riguarda le immagini multispettrali. Queste sono un insieme di immagini, ognuna delle quali è stata rilevata dal satellite in una diversa banda spettrale. Considerate le 4 immagini telerilevate di Washington, in cui è presente una regione con il fiume Potomac. Le prime tre immagini sono state rilevate nelle tre bande del visibile, mentre la quarta è nel vicino infrarosso. Provate a visualizzare le prime tre immagini come immagine a colori e poi sostituite alla componente R, la quarta immagine, quindi confrontate le due figure. Noterete come nella seconda immagine il fiume (vegetazione) è più facilmente discriminabile dalla città. Infatti il vicino infrarosso è molto sensibile alle parti di una scena contenenti biomasse, e l immagine mostra effettivamente in maniera chiara le differenze tra le componenti naturali (in rosso) e le costruzioni, composte principalmemte da asfalto e cemento (tendenti al blu).