Elaborazione immagini - .Slide 2of17 Introduzione: creare le immagini » I dati di partenza Le immagini

  • View
    216

  • Download
    0

Embed Size (px)

Text of Elaborazione immagini - .Slide 2of17 Introduzione: creare le immagini » I dati di partenza Le...

Lezione 8

Elaborazione immaginiCrescenzio Gallo - Universit di Foggiacrescenzio.gallounifg.it

Note: Il materiale visualizzato durante questo seminario disponibile per il download all'indirizzo

http://www.crescenziogallo.it/unifg/seminario-mathematica-2014/ Per una migliore visione ingrandire lo schermo mediante il pulsante in alto a destra "Schermo intero"

11 - 25 Marzo 2014

Slide 1 of 17 AgendaIntroduzione

Creare le immagini Propriet elementari delle immagini

Manipolazione di immagini Alcune funzioni elementari Operazioni dinamiche su immaginiOperazioni sui singoli punti o sui canali Applicare operazioni aritmentiche o pi generali Tonalit, saturazione e luminositEsempi di applicazioni dellimage processingConclusioni

|

2 08-Elaborazione immagini.nb

Slide 2 of 17 Introduzione: creare le immagini

I dati di partenzaLe immagini su cui operare possono essere create o importate. Per creare immagini si possono usare diversi strumenti ediversi metodi. Vediamo alcuni esempi.Creare immagini a partire dai dati.La funzione da usare per creare immagini si chiama Image. Una matrice genera un'immagine con un singolo canale:

Image@im = RandomReal@1, 85, 5

MatrixForm@im3D0.78220.72860.8888

0.39240.81060.9703

0.29830.18720.2135

0.60280.7981

0.001201

0.40540.40530.1843

0.13620.29840.7251

0.95370.39250.5633

0.093370.96430.2743

0.4880.3470.6209

0.34430.99560.06542

0.89930.47910.9067

0.77790.94840.4202

0.037340.20660.8046

0.68680.62910.9401

0.28210.25890.739

0.61720.8870.716

0.29460.10440.8756

0.55640.48060.2773

0.77460.17720.847

0.24850.99130.4784

0.59830.35880.9509

0.42680.77460.2838

0.44930.34880.4344

0.82120.99010.454

0.1860.4470.2619

Per default le immagini create con Image sono di tipo Real e non assumono uno specifico valore per lo spazio colori,ossia lopzione ColorSpace assume valore Automatic. Comunque si possono specificare sia il tipo di immagine sia ilsuo spazio colori:im4 = Image@88128, 255, 0

im5 = Image@CellularAutomaton@30, 881

InputForm@im5DImage[RawArray["Byte", {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0}, {0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0}, {1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1}}], "Bit", ColorSpace -> Automatic, Interleaving -> None]

Si pu anche usare RandomImage per generare immagini random a partire da dati di una certa distribuzione:

6 08-Elaborazione immagini.nb

RandomImage@UniformDistribution@D, 8200, 200

Slide 3 of 17 Introduzione: creare le immagini

Il tipo RealIn una matrice che genera unimmagine di tipo Real i valori possono anche essere esterni allintervallo [0, 1] ma nellavisualizzazione dellimmagine essi verrano considerati comunque nel range [0,1]:dati = Table@i10., 820

ImageData@im1DP1T80., 0.03333, 0.06667, 0.1, 0.1333, 0.1667, 0.2, 0.2333, 0.2667, 0.3,0.3333, 0.3667, 0.4, 0.4333, 0.4667, 0.5, 0.5333, 0.5667, 0.6, 0.6333,0.6667, 0.7, 0.7333, 0.7667, 0.8, 0.8333, 0.8667, 0.9, 0.9333, 0.9667, 1. Automatic, Interleaving -> True]

im = Image@RandomReal@1, 85, 5, 4

Con profondit 5 si pu specificare il grado di opacit (canale alfa) per gli spazi colore a 4 canali:im = Image@RandomReal@1, 85, 5, 5

Slide 8 of 17 Introduzione: propriet elementari delle immagini

Interallacciata vs. planareMathematica supporta due modi di combinazione dei canali: interleaved (interallacciata) e planar (planare). Per default,i dati sono considerati nella forma interallacciata:im = 8881, 0, 0

MatrixForm@pmDK 10O K 0

1O

K 01O K 0

1O

K 00O K 1

0O

MatrixForm pm:K 1 0

0 1O, K 0 1

0 1O, K 0 0

1 0O>

ImageData restituisce sempre i dati in forma interallacciata, anche se limmagine in forma planare:

ImageData@piD MatrixForm1.0.0.

0.1.0.

0.0.1.

1.1.0.

Volendo si pu usare anche in ImageData lopzione Interleaving:

08-Elaborazione immagini.nb 21

ImageData@pi, Interleaving FalseD MatrixFormK 1.0.

O K 0.1.

OK 0.1.

O K 0.1.

OK 0.0.

O K 1.0.

OColorSeparate genera una lista di immagini ciascuna rappresentante i singoli canali:

i = ;

ColorSeparate@iD: , , >

Al contrario, ColorCombine combina una lista di immagini di singoli canali in unimmagine multicanale:

22 08-Elaborazione immagini.nb

ColorCombineB: , , >F

|

08-Elaborazione immagini.nb 23

Slide 9 of 17 Introduzione: propriet elementari delle immagini

Dimensione immagine e zoomImageSize e Magnification sono due opzioni che modificano il modo in cui unimmagine viene visualizzata. Perdefault ImageSize impostata al valore Automatic, che generalmente ingrandisce immagini piccole e ridimensionaimmagini che non entrano nelle dimensioni della finestra del notebook.Image@880, 1, 0

Mentre la ridimensiona se si inserisce in una riga di testo, ad esempio per un input:

08-Elaborazione immagini.nb 25

ImageB , ImageSize AllF

Magnification solitamente si usa per scalare limmagine o fare uno zoom di ingrandimento:

ImageB , Magnification 2F

26 08-Elaborazione immagini.nb

Se si usano entrambi le opzioni, ImageSize prevale:

08-Elaborazione immagini.nb 27

Se si usano entrambi le opzioni, ImageSize prevale:

ImageB , ImageSize 10, Magnification 3F

|

28 08-Elaborazione immagini.nb

Slide 10 of 17 Manipolazione di immagini: propriet elementari delle immagini

Alcune funzioni elementariUsando il menu contestuale che compare su unimmagine, si pu selezionare lopzione Get Coordinates dal men contes-tuale per prelevare le singole coordinate di un punto nellimmagine o di una regione definita da due o pi coordinate:

i =

08-Elaborazione immagini.nb 29

ImageTrim estrae una regione definita in termini di coordinate:

ImageTrim@i, 8810, 10

i

ImageValue consente di estrarre valori numerici dei singoli pixel:

ImageValue@i, 8100, 100

Grid@g, Frame AllD

ImageAssemble ricostruisc e unimmagine da una lista di tasselli:

32 08-Elaborazione immagini.nb

ImageAssemble@Partition@RandomSample@Flatten@gD, Length@Flatten@gDDD, 5DD

ImageRotate ruota unimmagine di un angolo arbitrario. Il centro dellimmagine il centro di rotazione e langolo considerato antiorario:

08-Elaborazione immagini.nb 33

ManipulateBImageRotateB , QF, 8Q, 0, 2 p

Slide 11 of 17 Manipolazione di immagini: propriet elementari delle immagini

Operazioni dinamiche su immaginiMolte operazioni si possono eseguire dinamicamente sulle immagini cos da rendere pi semplice lo studio di particolarecaratteristiche delle immagini:

ModuleB:i = >,Manipulate@ImageResize@ImageCrop@i, 8300, 300

pts

zoom

Un esempio di tecniche di segmentazione dove Manipulate consente di collocare i punti focali di