Elaborazione delle Immagini Introduzione Elaborazione di Immagini Luigi Cinque

Slides:



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

Corso di Percezione Robotica (PRo) A. A. 99/00 B
Modulo: Analisi di immagini
GUIs, the user’s perspective
Array multidimensionali
I Formati Grafici I Formati grafici sono i formati tramite le quali le immagini sono salvate su disco fisso. I Formati grafici si suddividono in Formati.
Contenuti Multimedia e tecnologia digitale
Immagini.
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.
Formati e caratteristiche di digitalizzazione
Teoria del colore Andrea Torsello
Codifica dell’ Informazione non numerica
Costruzione di Interfacce
ingredienti fondamentali e tecniche di base
Un tocco di blu non guasta …
I File.
Elaborazione (digitale) delle immagini
Trattamento Immagini (parte 2)
Formati e caratteristiche di digitalizzazione
Claudia Raibulet Algebra Booleana Claudia Raibulet
Che cosa sono le figure per il calcolatore?
Trasformazioni di intensità Filtraggio spaziale
Histogram and region based processing
IMMAGINI DIGITALI ISTITUTO COMPRENSIVO CUNEO-BORGO S. GIUSEPPE
Videoscrittura - 3 Informatica 1 (SAM) - a.a. 2010/11.
Una LIM per la didattica
2. Hardware Componenti di base di un computer
CODIFICA DI INFORMAZIONI MULTIMEDIALI:
Digitalizzazione Un segnale viene digitalizzato, se il suo stato originario analogico viene tradotto e rappresentato mediante un insieme numerabile di.
photoshop Lezione 1 edoardo cioffi
Publishing & Editing Immagini
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Immagini digitali immagine digitale, si intende un elemento grafico elaborato tramite computer, che si può visualizzare sul monitor e stampare su carta.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
RAPPRESENTAZIONE DELLE INFORMAZIONI
Tutte le immagini che si trovano nel computer sono digitali. Possiamo crearle con programmi di grafica o acquisirle con scanner, macchine fotografiche.
Il Linguaggio HTML “Profe, ma io a casa l’HTML non ce l’ho!“
Codifica dei dati in un elaboratore elettronico
Codifica dell’informazione
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DIGITALIAZZAZIONE Di Alessio.
Codifica di Immagini Fabio Cantaro.
Colori e Font in java.
Trattamento Immagini (parte 1) L Obiettivi ➢ Metodi di base del trattamento delle immagini ➢ Immagini: matrici di punti rappresentati da valori.
Principi di grafica BMP , Jpeg , Tif , GIF:
HTML 4.01 Apogeo. I tag di base Capitolo 1 I tag SintassiEsempi:
Codifica dell’informazione
Scuola Interuniversitaria Campana di Specializzazione all’Insegnamento S.I.C.S.I. III Ciclo 2° Anno A.A Ambito tecnologico- Classe A042 Informatica.
Informatica Lezione 1 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Corsi di Laurea in Biotecnologie
Informazione multimediale
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Analisi di Immagini e Dati Biologici
Schermi o Display al plasma
Rappresentazione della Informazione
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 5: 18 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
AA 2000/2001 © Alberti, Bruschi, Ferrari, Provetti, Rosti Laboratorio di Informatica 9. Multimedia 1 Laboratorio di Informatica I multimedia digitali Lezione.
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
Tipi di immagini. Vi sono 3 tipi di formati di immagini molto conosciuti Bitmap (bmp)  Bitmap (bmp)  Gif  Jpg.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
Logica di base e Conversione analogico-digitale Lezione 3 / Prima parte Gaetano Arena e.mail: 1.
POLITECNICO DI BARI Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica “Sicurezza dei Sistemi Informatici” REALIZZAZIONE DI UNA APPLICAZIONE.
Prof. Dario Scalini. Luce e Colore FOTORECETTORI  coni (colori) e bastoncelli (luminosità)
SOMMARIO La Digitalizzazione La Compressione LA DIGITALIZZAZIONE La digitalizzazione consiste nella trasformazione di un oggetto in una sequenza di numeri,
Di Matteo Arenga Manuela Bonaccorso Giulia Diprossimo.
Video Grafica Immagini. Modalità Video Risoluzione –Numero di pixel visualizzati sul monitor; per esempio 800 x 600, 1024 x 768, 1280 x 1024 Profondità.
La Matematica del web: compressione di immagini Nancy Castro Claudia Mungo Edoardo Decaro.
Analisi di regioni Luigi Cinque 23/02/2019 Analisi di regioni.
Transcript della presentazione:

Elaborazione delle Immagini Introduzione Elaborazione di Immagini Luigi Cinque

Elaborazione delle Immagini Introduzione 2 Libri di testo  Possono essere consultati:  Rafael C. Gonzalez, Richard E. Woods: Digital Image Processing, 2nd, Prentice Hall,  Robert M. Haralick, Linda G. Shapiro: Computer amd Robot Vision, Vol I, Addiso Wesley, 1994.

Elaborazione delle Immagini Introduzione 3 Le immagini  Una immagine è una rappresentazione spaziale di un oggetto o di una scena bidimensionale o tridimensionale  Nel campo dell’elaborazione di immagini per immagine generalmente si intende la rappresentazione della scena stessa dopo il processo di digitalizzazione  Dal punto di vista di un programmatore una immagine è una matrice bidimensionale di valori omogenei

Elaborazione delle Immagini Introduzione 4 Sistema di acquisizione  La telecamera (in generale un sensore elettronico)  Memoria immagine (frame grabber)  Monitor  Calcolatore  Database  Attuatore Componenti di un sistema di acquisizione

Elaborazione delle Immagini Introduzione 5 A/D Memoria Immagine D/A Monitor Sistema di acquisizione Database Immagini risultati numerici comandi di controllo A/D: convertitore analogico/digitale D/A: convertitore digitale/analogico comandi di controllo

Elaborazione delle Immagini Introduzione 6 Il processo di acquisizione Scena Telecamera Segnale elettrico di una singola linea di scansione Segnale campionato Matrice risultante Segnale elettrico analogico

Elaborazione delle Immagini Introduzione 7 Il processo di digitalizzazione  Il segnale acquisito da una telecamera è tipicamente un segnale continuo che descrive l’intensità del segnale luminoso secondo una scansione per linee  La digitalizzazione trasforma un segnale continuo discretizzandolo sia nella dimensione spaziale, che in quella dei livelli di grigio (convertitore A/D)  Il segnale convertito viene memorizzato in una memoria immagine che funge da interfaccia tra l’elaboratore, il monitor e l’elemento di acquisizione  Tra la memoria immagine ed il monitor vi è un convertitore D/A

Elaborazione delle Immagini Introduzione 8 Risoluzione spaziale  La risoluzione spaziale è la più piccola dimensione dell’oggetto osservato che può essere discriminata  La cella di risoluzione è la più piccola area elementare associata ad un valore in una immagine digitale  Generalmente la cella elementare è un quadrato ma si possono anche avere celle rettangolari o esagonali

Elaborazione delle Immagini Introduzione 9 Risoluzione spaziale  Pixel (picture element) è descritto dalla posizione spaziale di una cella elementare (riga, colonna) e dal valore ad essa associato  Dimensioni comuni per immagini digitali sono 256x256, 1024x1024, 640x480

Elaborazione delle Immagini Introduzione 10 Risoluzione spaziale

Elaborazione delle Immagini Introduzione 11 Risoluzione nella scala di grigi  Una immagine binaria è una immagine in cui ogni pixel può assumere solo due valori: (0,1), (vero, falso), (oggetto, sfondo)  una immagine binaria utilizza solo un bit per pixel  Una immagine a toni di grigio è una immagine in cui ogni pixel assume valori in un intervallo più ampio  valori tipici sono [0, 63], [0, 255], [0, 1023], rispettivamente 6, 8, 10 bit per pixel  Un osservatore umano percepisce una scala continua di grigi osservando immagini memorizzate con 8 bit

Elaborazione delle Immagini Introduzione 12 Risoluzione nella scala dei grigi

Elaborazione delle Immagini Introduzione 13 Immagini a colori  Le immagini a colori nella loro forma più semplice sono costituiti da pixel che memorizzano 3 valori distinti (uno per la componente rossa, uno per la componente verde, il terzo per il blu)  Normalmente per ogni colore si utilizza un byte per cui sono rappresentabili 256x256x256 colori diversi (circa 16 milioni)

Elaborazione delle Immagini Introduzione 14 Immagini a colori  Spesso per limitare l’occupazione di memoria si utilizzano un numero limitato di colori, riuscendo quindi a memorizzare l’immagine con un minore numero di pixel (8, 4, 1)  In questo caso però l’immagine deve memorizzare anche la LUT dei colori

Elaborazione delle Immagini Introduzione 15 LUT dei colori valore pixel LUT R1G1B1 R2G2B2 R3G3B3 R4G4B4 R5G5B5 R6G6B6 R7G6B7 (R5, G5, B5) Valore effettivamente visualizzato

Elaborazione delle Immagini Introduzione 16 Immagini a colori Immagine originale Immagine a 256 colori Immagine a 16 colori Immagine a 8 colori

Elaborazione delle Immagini Introduzione 17 Immagini a colori Immagine originale Immagine dei rossi Immagine dei verdi Immagine dei blu

Elaborazione delle Immagini Introduzione 18 Modelli di colore  I modelli di colore sono in genere relativi all’applicazione  RGB - monitor  CMYK – cyan, magenta, yellow, black – stampanti

Elaborazione delle Immagini Introduzione 19 Modelli di colore  YIQ – luminance, inphase, quadrature – tv color  HIS – hue, saturation, intensity  HSV - hue, saturation, value

Elaborazione delle Immagini Introduzione 20 Altri modelli per il colore  YUV  YIQ

Elaborazione delle Immagini Introduzione 21 Altri modelli per il colore  HSV  H è il colore dominante -0° rosso, 120° verde, 240° blu  S (saturazione – cioè intensità di colore) -0 è un tono di grigio

Elaborazione delle Immagini Introduzione 22 HSV H S V Rosso Giallo Verde Ciano BluMagenta 0°: 255, 0, 0 60°: 255, 255, 0 120°: 0, 255, 0 180°: 0, 255, °: 0, 0, °: 255, 0, 255 Bianco Bianco: H indefinito, 255, 255, 255

Elaborazione delle Immagini Introduzione 23 Altri modelli per il colore  rgb  r = R/(R+G+B)  g = G/(R+G+B)  b = B/(R+G+B)  È una rappresentazione normalizzata rispetto all’intensità luminosa (r+g+b=1)

Elaborazione delle Immagini Introduzione 24 Immagini bitmap (bmp) typedef struct { short magic; /* "BM" */ long file_dim; /* dimensione file */ long l0; /* 0 */ long header_dim; /* dimensione header */ long l40; /* 40 */ long xsize; /* numero colonne */ long ysize; /* numero righe */ short nchan; /* 1 */ short zsize; /* */ long compression; /* 0 -> non compresso */ long data_dim; /* dimensione dati */ long xppi; long yppi; long colors; /* dimensione lut */ long colors1; } bmp_header; Struttura del file: intestazione, lut dei colori utilizzati dati dell’immagine per righe (le righe devono essere di dimensione multipla di 4 byte)

Elaborazione delle Immagini Introduzione 25 Immagini portable gray map (pgm) Struttura del file: prima riga “P5” un numero arbitrario (anche 0) di righe di commento che iniziano con “#” una riga contenente numero di colonne e numero di righe un numero arbitrario (anche 0) di righe di commento che iniziano con “#” una riga contenente il valore massimo del range (normalmente 255) i dati dell’immagine (1 byte per pixel)

Elaborazione delle Immagini Introduzione 26 Immagini portable pixel map (ppm) Struttura del file: prima riga “P6” un numero arbitrario (anche 0) di righe di commento che iniziano con “#” una riga contenente numero di colonne e numero di righe un numero arbitrario (anche 0) di righe di commento che iniziano con “#” una riga contenente il valore massimo del range (normalmente 255) i dati dell’immagine (3 byte per pixel, terne RGB: valore per il colore rosso, verde, blu)

Elaborazione delle Immagini Introduzione 27 Immagini gif Permettono di memorizzare immagini con al più 256 colori diversi Iniziano con “GIF89a” Segue un header con le informazioni sulla struttura dell’immagine (righe, colonne, numero di colori, …) Una tabella di lut con le terne corrispondenti ai colori utilizzati i dati dell’immagine (logicamente 1 byte per pixel) in formato compresso

Elaborazione delle Immagini Introduzione 28 Immagini gif  Immagine “ppm” circa 290 Kb  Immagine “gif” circa 53 Kb  N.B.  a partire dalla “gif” è possibile riottenere l’immagine “ppm” di partenza  Non si ha perdita di informazione

Elaborazione delle Immagini Introduzione 29 Immagini jpg  Si scompone l’immagine a colori in blocchi di 16x16 pixel, si fa una analisi in frequenza del blocco e si eliminano le alte frequenze (che l’occhio umano non percepisce bene)  Se le immagini devono essere utilizzate da un osservatore umano il risultato è generalmente ottimo: buon aspetto e pochi dati da trasmettere/memorizzare

Elaborazione delle Immagini Introduzione 30 Immagini jpg  Immagine “ppm” circa 290 Kb  Immagine “jpg” circa 25 Kb non  N.B.  a partire dalla “jpg” non è possibile riottenere l’immagine “ppm” di partenza  Si ha perdita di informazione  Il grado di compressione (ma quindi anche la perdita di informazione) è un parametro del processo di trasformazione

Elaborazione delle Immagini Introduzione 31 Immagini a colori e Java  Java normalmente utilizza un int per trattare immagini: il byte meno significativo per la componente blu, poi la verde, quindi la rossa  Il byte più significativo (componente alfa) è il grado di trasparenza del pixel (255 pixel opaco, 0 pixel trasparente cioè invisibile)

Elaborazione delle Immagini Introduzione 32 Immagini a colori e Java  Dato il valore (V) di un pixel per ottenere le singole componenti normalmente si procede:  R = (V >> 16) & 255;// R = (V/0x10000) & 255  G = (V >> 8) & 255;  B = (V) & 255;  In modo analogo l’operazione inversa  V = (R<<16) | (G<<8) | (B) | 0xff000000;  L’ultimo termine è necessario per avere un pixel opaco  ovviamente si deve avere: 0  R,G,B  255)

Elaborazione delle Immagini Introduzione 33 Immagini a toni di grigio  Un immagine a toni di grigio è una immagine in cui le tre componenti sono uguali  Un metodo intuitivo per operare la trasformazione  grigio è G = (R+G+B)/3  Dato che l’occhio ha una sensibilità diversa per I diversi colori si preferisce una media pesata  Una scelta frequente è G = 0.299*R *G *B

Elaborazione delle Immagini Introduzione 34 Istogramma  La prima elaborazione che vediamo è l’istogramma  L’operazione di calcolo dell’istogramma è il conteggio del numero di volte che ogni valore è presente nell’immagine  Il risultato è perciò un vettore di interi  Dal punto di vista della programmazione significa scandire l’intera immagine e per ogni pixel incrementare un elemento opportuno del vettore -Istogramma[ immagine[i][j] ]++

Elaborazione delle Immagini Introduzione 35 Istogramma

Elaborazione delle Immagini Introduzione 36 Un primo programma import java.awt.*; import java.awt.image.*; import java.applet.Applet; public class IstogrammaApplet extends Applet { private Image image; private ImageCanvas imageCanvas; private Panel panel; private TextArea text; public void init() { String image_file = getParameter("IMAGEFILE"); image = getImage(getDocumentBase(), image_file); while(image.getWidth(this)<0); Dimension imageSize = new Dimension( image.getWidth(this), image.getHeight(this)); imageCanvas = new ImageCanvas(image, imageSize); int[] pixels = ImageCanvas.grabImage(image, imageSize); panel = new Panel(new GridLayout(1,2,10,10)); text = new TextArea(20,5); panel.add(imageCanvas); panel.add(text); add(panel); text.setText((new Istogramma(pixels)).toString()); }

Elaborazione delle Immagini Introduzione 37 Un primo programma class Istogramma { private int histo[] = new int[256]; public String toString() { String text = ""; for(int i=0; i<256; i++) { text += i+" "+histo[i]+'\n'; } return text; } public Istogramma(int[] rgb) { for(int i=0; i<rgb.length; i++) { int tmp = (int) ( (((rgb[i] & 0xff0000)>>16) * 0.299) + (((rgb[i] & 0x00ff00)>>8 ) * 0.587) + (((rgb[i] & 0x0000ff) ) * 0.114) ); histo[tmp]++; } public int getValueAt(int index) { return histo[index]; }

Elaborazione delle Immagini Introduzione 38 Un primo programma public class ImageCanvas extends Canvas { static final int MIN_WIDTH = 64; static final int MIN_HEIGHT = 64; private Image image; private Dimension size; public ImageCanvas(Image img, Dimension dim) { super(); image = img; size = dim; } public Dimension getMinimumSize() { return new Dimension(MIN_WIDTH, MIN_HEIGHT); } public Dimension getPreferredSize() { return new Dimension(size); } public void paint(Graphics g) { g.drawImage(image, 0, 0, getBackground(), this); }

Elaborazione delle Immagini Introduzione 39 Un primo programma static public int[] grabImage(Image image, Dimension size) { int[] data = new int[size.width * size.height]; PixelGrabber pg = new PixelGrabber( image, 0, 0, size.width, size.height, data, 0, size.width); try { pg.grabPixels(); } catch (InterruptedException e) { System.err.println( "ImageSampler: interrupted while grabbing pixels"); return null; } if ((pg.status() & ImageObserver.ABORT) != 0) { System.err.println( "ImageSampler: pixel grab aborted or errored"); return null; } return data; }

Elaborazione delle Immagini Introduzione 40 Un primo programma Istogramma Istogramma <applet name="IstogrammaApplet" code="IstogrammaApplet.class" width="800" height="500" alt="If you had a java-enabled browser, you would see an applet here." >

Elaborazione delle Immagini Introduzione 41 Un primo programma