corso di visione e percezione docente domenico d. bloisi
TRANSCRIPT
![Page 1: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/1.jpg)
Processamentodelle immagini
UNIVERSITÀ DEGLI STUDI
DELLA BASILICATA
DocenteDomenico D. Bloisi
Corso di Visione e Percezione
![Page 2: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/2.jpg)
• Professore AssociatoDipartimento di Matematica, Informaticaed EconomiaUniversità degli studi della Basilicata http://web.unibas.it/bloisi
• SPQR Robot Soccer TeamDipartimento di Informatica, Automaticae Gestionale Università degli studi di Roma “La Sapienza” http://spqr.diag.uniroma1.it
Domenico Daniele Bloisi
![Page 3: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/3.jpg)
• UNIBAS WOLVES is the robot soccer team of the University of Basilicata. Established in 2019, it is focussed on developing software for NAO soccer robots participating in RoboCup competitions.
https://sites.google.com/unibas.it/wolvesUNIBAS Wolves
• UNIBAS WOLVES team is twinned with SPQR Team at Sapienza University of Rome.
![Page 4: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/4.jpg)
• Home page del corso:https://web.unibas.it/bloisi/corsi/visione-e-percezione.html
• Docente: Domenico Daniele Bloisi
• Periodo: II semestre marzo 2022 – giugno 2022
- Martedì dalle 15:00 alle 17:00 (Aula Copernico)- Mercoledì dalle 8:30 alle 10:30 (Aula Copernico)
Informazioni sul corso
![Page 5: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/5.jpg)
• Durante il periodo delle lezioni:Mercoledì dalle 11:00 alle 12:30 Edificio 3D, II piano, stanza 15Si invitano gli studenti a controllare regolarmente la bacheca degli avvisi per eventuali variazioni
• Al di fuori del periodo delle lezioni:da concordare con il docente tramite email
Per prenotare un appuntamento inviareuna email a
Ricevimento
![Page 6: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/6.jpg)
• Introduzione al linguaggio Python• Elaborazione delle immagini con Python• Percezione 2D – OpenCV• Introduzione al Deep Learning• ROS• Il paradigma publisher
and subscriber• Simulatori• Percezione 3D - PCL
Programma – Visione e Percezione
![Page 7: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/7.jpg)
• Una immagine digitale è una matrice di pixel• Il termine pixel deriva da picture element
Immagine Digitale
• Il pixel contiene l’informazione relativa alla rappresentazione della realtà che è stata catturata tramite uno scanner, una macchina fotografica o un frame grabber (per i video)
opencv.org
![Page 8: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/8.jpg)
• Per poter elaborare il contenuto di una immagine, avremo bisogno di caricarla in memoria per poter accedere ai suoi elementi e modificarli.
• Una volta terminate le modifiche, potremmo voler salvare l’immagine modificata su disco.
• Per poter processare le immagini utilizzeremo delle librerie esterne.
Processamento delle immagini
![Page 9: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/9.jpg)
• NumPy è una libreria per il calcolo scientifico in Python
• NumPy è inclusa in Google Colab e viene rilasciatasotto la BSD license
• La utilizzeremo principalmente per la gestione degliarray N-dimensionali e per la definizione di nuovi tipi di dato
La libreria NumPy
http://www.numpy.org/
![Page 10: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/10.jpg)
Array in NumPy
• Un array in NumPy è una griglia di valori, tutti dellostesso tipo
• Gli array sono indicizzati
• La classe array in NumPy è chiamata ndarray. Per creare un ndarray viene utilizzata la funzione array()
![Page 11: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/11.jpg)
Array in NumPy
3
1
2
a
![Page 12: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/12.jpg)
Array multidimensionali
3
1 2
4
b
![Page 13: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/13.jpg)
Rank e shape in NumPy
• In NumPy le dimensioni di un array sono chiamateaxes
• Il numero di axes è chiamato rank. Il rank (che è memorizzato nella variabile ndim) rappresenta la dimensione dell’array
• La shape è una tupla di interi che fornisce la lunghezzadell’array lungo ogni dimensione
![Page 14: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/14.jpg)
Rank e shape
3
1
2
a
Rank: 1Shape: (3,)
Rank: 2Shape: (2, 3)
Si usa (3,) per indicare che sitratta di una tuplacon un solo elemento, diversada (3) che è ilnumero 3
4
1 2
5
b
6
3
![Page 15: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/15.jpg)
Funzioni per inizializzare array
0.
0.
0.
z
1.
1.
1.
o
![Page 16: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/16.jpg)
Funzioni per inizializzare arraye
f
0.
1. 0.
1.
0.
0.
0. 0. 1.
2
2
2numpy.full(shape, fill_value, dtype=None, order='C', *, like=None)Return a new array of given shape and type, filled with fill_value.
![Page 17: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/17.jpg)
Valori (pseudo)random
![Page 18: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/18.jpg)
Slicing mono-dimensionalea
4
1
2
5
3
a[2:4]
4
3
a[2:]
4
5
3
a[:2]1
2
a[:]
4
1
2
5
3
a[:-1]
4
1
2
3
![Page 19: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/19.jpg)
Slicing bi-dimensionaleb
41 2
5
3
6 7 8
109 11 12
b[1:,2:]
1 2
5 6
7 8
109
11 12
b[:,:2]
range è una funzione python built-in che crea una lista di interi
![Page 20: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/20.jpg)
Indexing
1 2
3 4
65
a
![Page 21: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/21.jpg)
Boolean indexing
1 2
3 4
65
b
![Page 22: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/22.jpg)
Tipi di dato in Numpy
![Page 23: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/23.jpg)
Tipi di dato in Numpy vs. C
https://www.numpy.org/devdocs/user/basics.types.html
![Page 24: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/24.jpg)
Operazioni con gli array
![Page 25: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/25.jpg)
ValueError
![Page 26: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/26.jpg)
Sottrazione
![Page 27: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/27.jpg)
Divisione (elemento per elemento)
![Page 28: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/28.jpg)
Moltiplicazione (elemento per elemento)
![Page 29: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/29.jpg)
Prodotto scalare
![Page 30: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/30.jpg)
Trasposta
![Page 31: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/31.jpg)
Broadcasting
1 2 34 5 67 8 9
1 2 34 5 6
A X B
1 2 3
A.X + Bbroadcast
![Page 32: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/32.jpg)
Broadcasting
𝐵1 𝐵2𝐵0+
𝐵1 𝐵2𝐵0
A.X + B
broadcast
𝐴0,0𝐴0,1
𝐴0,2
𝐴1,0𝐴1,1
𝐴1,2.
𝑋0,0𝑋0,1
𝑋0,2
𝑋1,0𝑋1,1
𝑋1,2
𝑋2,0𝑋2,1
𝑋2,2
![Page 33: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/33.jpg)
Broadcasting
1 2 34 5 67 8 9
1 2 34 5 6
A
X
30 36 4266 81 96
XX
A.X + BX
X X X
![Page 34: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/34.jpg)
Broadcasting
B
1 2 3
+
A.X + B
broadcast
30 36 4266 81 96
31 38 4567 83 99
1 2 31 2 3
![Page 35: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/35.jpg)
Broadcasting
![Page 36: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/36.jpg)
Matplotlib
https://matplotlib.org/
Matplotlib è una libreria Python per il plotting in 2D
Con matplotlib è possibile generare grafici, istogrammi, spettri, diagrammi a barre, grafici di dispersione e altroancora usando una interfaccia tipo MATLAB
![Page 37: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/37.jpg)
plot
https://matplotlib.org/users/pyplot_tutorial.html
![Page 38: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/38.jpg)
Visualizzare una immagine con matplotlib
![Page 39: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/39.jpg)
Modifica dell’immagine
![Page 40: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/40.jpg)
Modifica dell’immagine
![Page 41: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/41.jpg)
Grid on
![Page 42: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/42.jpg)
Axis off
![Page 43: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/43.jpg)
Evitare la stampa a video
![Page 44: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/44.jpg)
Salvare l’immagine
![Page 45: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/45.jpg)
Pillow
Pillow è una libreria open source per aprire, elaborare e salvare immagini derivata dalla Python Imaging Library (PIL)
Homepage: https://python-pillow.org/Source code: https://github.com/python-pillow/PillowDocumentation: https://pillow.readthedocs.io/
![Page 46: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/46.jpg)
Aprire l’immagine con Pillow
![Page 47: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/47.jpg)
Immagini: occupazione di memoria
L’occupazione di memoria è data dal prodotto tra la dimensione dell’immagine e la profondità di colore del singolo pixel
Occupazione = (Dimensione) x (Profondità di colore)
Esempio:Una immagine a colori (RGB) 640x480 occupa in memoria 9830400 bit pari a circa 1.23 MB
![Page 48: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/48.jpg)
Compressione
Per diminuire la dimensione di una immagine in memoria è possibile utilizzare degli opportuni metodi di compressione
![Page 49: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/49.jpg)
Tipi di Compressione
La compressione può essere "lossless" o "lossy"
• Compressione "lossless": reversibileAd esempio, file PNG e file ZIP
• Compressione "lossy": ricostruzione approssimata, dove maggiore è il rapporto di compressione, maggiore è l’erroreAd esempio, file JPEG e file MP3
![Page 50: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/50.jpg)
Formato BMP
https://docs.microsoft.com/en-us/windows/desktop/gdi/bitmap-storage
• Il formato BMP (bitmap) è stato sviluppato da Microsoft per la gestione dei file in Windows
• Si tratta di un formato piuttosto datato (anni 90) che permette di salvare immagini in grayscale e a colori
• Viene usato di solito per salvare immagini senza compressione (lossless)
![Page 51: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/51.jpg)
Formato PNG
Il formato PNG (Portable Network Graphics) utilizza un algoritmo di compressione lossless che permette di preservare dettagli e sfumature di colore nell’immagine
http://www.libpng.org/pub/png/
![Page 52: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/52.jpg)
Compressione lossy
L’ occhio umano è meno sensibile alle ALTE frequenze spaziali:
• Se l’ampiezza di una componente ad ALTA frequenza cade sotto una certa soglia, l’occhio umano NON LA RILEVA
La quantizzazione può essere meno accurata alle alte frequenze
Possono essere utilizzati meno bit
![Page 53: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/53.jpg)
Discrete Cosine TransformLa DCT trasforma una matrice bi-dimensionale di pixel in una matrice equivalente di "spatial frequency components"
Immagine tratta da M. Moewe “Media Compression Techniques”
![Page 54: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/54.jpg)
• L’immagine viene divisa in blocchi 8x8• Si applica la 2D Fourier Discrete Cosine Transform (FDCT)• I componenti ad alta frequenza spaziale vengono quantizzati
più grossolanamente• I dati risultanti dalla quantizzazione vengono compressi con un
meccanismo senza perdita di informazione
8x8 pixelblocks
FDCTFrequency Dependent quantization
Zig-zag scan
Huffman encoding
JPEG syntax generator
Quantization Table
output
Compressione JPEG
Immagine tratta da M. Moewe “Media Compression Techniques”
![Page 55: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/55.jpg)
128 128 128 128 128 128 128 128
118 111 112 117 120 123 123 122
125 121 115 111 119 119 118 117
120 121 113 113 125 124 115 108
120 120 116 119 124 120 115 110
117 113 111 122 120 110 116 119
109 113 111 122 120 110 116 119
111 121 124 118 115 121 117 113
-80 4 -6 6 2 -2 -2 0
24 -8 8 12 0 0 0 2
10 -4 0 -12 -4 4 4 -2
8 0 -2 -6 10 4 -2 0
18 4 -4 6 -8 -4 0 0
-2 8 6 -4 0 -2 0 0
12 0 6 0 0 0 -2 -2
0 8 0 -4 -2 0 0 0
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
-5 0 0 0 0 0 0 0
2 -1 1 1 0 0 0 0
1 0 0 -1 0 0 0 0
1 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
Quantization Matrix to divide by
Spatial domain
Quantized spatial frequency values
Quantizzazione in frequenzaFrequency domain
Immagine tratta da M. Moewe“Media Compression Techniques”
![Page 56: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/56.jpg)
-5 0 0 0 0 0 0 0
2 -1 1 1 0 0 0 0
1 0 0 -1 0 0 0 0
1 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
• Si usa un percorso a zig-zag per scansionare le frequenze spaziali
• Le alte frequenze valgono quasi sempre zero
• La Huffman encoding è usata per immagazzinare con compressionelossless i valori
Usando la codifica di Huffman i valori
0,2,1,-1,0,0,1,0,1,1,0,0,1,0,0,0,-1,0,0,… 0
vengono memorizzati come
(1,2),(0,1),(0,-1),(2,1),(1,1),(0,1),(0,1),(2,1),(3,1),EOB
Scanning e Huffman Encoding
Immagine tratta da M. Moewe “Media Compression Techniques”
![Page 57: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/57.jpg)
500KB image, minimum compression 40KB image, half compression 11KB image, max compression
Vari livelli di compressione JPEG
![Page 58: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/58.jpg)
Uncompressed image (roughness between pixels still visible)
Half compression, blurring & halos around sharp edges
Max compression, 8-pixel blocks apparent, large distortion in high-frequency areas
Perdita di dettagli
![Page 59: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/59.jpg)
Immagini in Jpeg con Pillow
compressionartifacts
![Page 60: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/60.jpg)
Cambiare Jpeg quality
![Page 61: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/61.jpg)
How to read an image from url
![Page 62: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/62.jpg)
Trasformazioni
• Rotating• Flipping• Resizing• Cropping
![Page 63: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/63.jpg)
Rotate
![Page 64: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/64.jpg)
FlipPillow (PIL) provides• flip() to flip the image upside down (vertically)• mirror() to flip the left and right (horizontally)
![Page 65: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/65.jpg)
SPL realistic black and white ball
![Page 66: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/66.jpg)
Resize
![Page 67: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/67.jpg)
Crop(left, upper, right, lower)-tuple
roi
![Page 68: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/68.jpg)
Region of interest (ROI)
![Page 69: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/69.jpg)
Esercizio 1
Realizzare una immagine come quella in figura utilizzando le librerie NumPy, Matplotlib e Pillow
256
512
64
64
![Page 70: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/70.jpg)
Esercizio 1: soluzione
![Page 71: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/71.jpg)
Esercizio 2
Utilizzare le librerie NumPy, Matplotlib e Pillow per effettuare il cropping dell’immagine https://web.unibas.it/bloisi/corsi/images/nao-v6-spqr.jpg
![Page 72: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/72.jpg)
Esercizio 3
Utilizzare le librerie NumPy, Matplotlib e Pillow per effettuare la rotazione di 30° dell’immaginehttps://web.unibas.it/bloisi/corsi/images/nao-v6-spqr.jpg
![Page 73: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/73.jpg)
Esercizio 4
Realizzare una immagine come quella in figura utilizzando le librerie NumPy, Matplotlib e Pillow
256
512
64
64
64
64
![Page 74: Corso di Visione e Percezione Docente Domenico D. Bloisi](https://reader035.vdocuments.pub/reader035/viewer/2022072103/62d867bc8a72ea6483155125/html5/thumbnails/74.jpg)
Processamentodelle immagini
UNIVERSITÀ DEGLI STUDI
DELLA BASILICATA
DocenteDomenico D. Bloisi
Corso di Visione e Percezione