View
219
Download
0
Embed Size (px)
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