Want to create interactive content? It’s easy in Genially!
Elaborazione immagini python
robertaamato005
Created on November 12, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
PYTHON
Elaborazione immagini
Roberta Amato 5°DM
INTRODUZIONE
IMMAGINE DIGITALE: si tratta di una matrice di pixel.
Per poter elaborare un'immagine:
- bisogna 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 l'immagine utilizzeemo librerie esterne.
Numpy:
- è una libreria per il calcolo scientifico in python;
- è inclusa in google colab e viene rilasciata sotto la BSD license;
- la usiamo per la gestione deglib array N-dimensionali e per la definizione di nuovit tipi di dato.
Info
(Array monodimensionale)
Array in numpy:
- griglia di valori, tutti dello stesso tipo;
- sono indicizzati;
- la classe array in numpy è chiamata ndarray. Per creare una ndarray viene usata la funzione array()
Oltre agli array monodimensionali conosciamo anche gli array multidimensionali.
Rank e Shake in Numpy:- In Numpy le dimensioni di un array sono chiamate axes;
- il numero di axes è chiamato rank(altezza);
- La shape è una tupla di interi che fornisce la lunghezza dell'array lungo ogni dimensione.
Si usa (3,) per indicare che si tratta di una tupla con un solo elemento, diversa da (3) che è il numero 3
SLICING MONO-DIMENSIONALE
Per slicing si intende la selezione e il porzionamento degli elementi.
Matplotlib: è una libreria Python per il ploting 2D.Con matplotlib è possibile generare:-istogrammi; -grafici; -spettri; -diagrammi a barre; -grafici di dispersione.
Inoltre l'interfaccia MATLAB (abbreviazione di Matrix Laboratory) è un ambiente per il calcolo numerico e l'analisi statistica scritto in C, che comprende anche l'omonimo linguaggio di programmazione creato dalla MathWorks.
Con matplotlib è possibile anche:-modificare un'immagine. - visualizzare un'immagine: Per visualizzarla basta semplicemente utilizzare la funzione di Matpltlib imshow().
Lorem ipsum dolor sit amet
Pillow è una libreria open source per aprire , elaborare e salvare delle immagini derivata da PIL (Python Image Library).
Per salvare le immagini con pillow bisogna inserire una specifica dicitura:
Per aprire le immagini con pillow bisogna inserire una specifica dicitura:
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)*(Pofondità)
Compressione
Per diminuire la dimensione di una immagine è possibile utilizzare gli opportuni metodi di compressione
Esistono due tipi di compressione :
"Lossless": reversibile (file PNG, file ZIP);
"Lossy": ricostruzione approssimata, dove maggiore è il rapporto di compressione, maggiore è l'errore (file JPEG, file MP3).
Formato JPEG
é un formato di file utilizzato per memorizzare immagini a diversi livelli di definizione.
A causa della natura dei file JPEG, per questo tipo di immagini è possibile solo la compressione con perdita, ma è possibile controllare la quantità di compressione ricevuta dall'immagine per trovare un equilibrio confortevole tra dimensione del file e qualità dell'immagine.
Anche questo file può essere compresso.
Schema compressione file:
Immagini in Jpeg con Pillow
Facendo ciò possiamo notare gli artefatti di compressione.
Cambiare JPEG quality
Formato BMP (bitmap): - è stato sviluppato da Microsoftper la gestione dei file in Windows; -si tratta di un formato piuttosto datato(anni 90) che permette di salvare le immagini in grayscale e a colori; -viene usato di solito per salvare le immagini senza compressione (loseless).
Formato PNG (Portable Network Graphics).
utilizza un algoritmo di compressione lossless che permette di preservare dettagli e sfumature di colore nell'immagine.
Come leggere un'immagine dall'ulr.
Trasformazioni:
Rotating;
Pillow (PIL) fornisce: 1) flip() per capovolgere l'immagine (verticalmente); 2) mirror() per capovolgere l'immagine sinistra e destra (orizzontalmente).
Flipping;
Resizing;
Cropping.
Rilevamento dei bordi (EDGES)
importa matplotlib.pyplot as plt dall'immagine di importazione PIL, ImageFilter # Apertura dell'immagine (R preceduta da string# per gestire con '\' nei percorsi) image = Image.open(r"Sample.png") # Conversione dell'immagine in scala di grigi, come rilevamento dei bordi # richiede che l'immagine in input sia in modalità = Scala di grigi (L) image = image.convert("L") # Rilevamento dei bordi sull'immagine utilizzando l'argomento ImageFilter.FIND_EDGES image = image.filter(ImageFilter.FIND_EDGES) # Salvataggio dell'immagine con il nome Edge_Sample.png image.save(r"Edge_Sample.png") plt.imshow(immagine) plt.show()
PYDICOM
PYDICOM è unpacchetto per lavorare con file DICOM come immagini mediche, rapporti e oggetti di radioterapia.
Questo pacchetto è utilizzato per TAC e ECG
THANK YOU!
DICOM(" Digital Imaging e Communications in Medicine"), è il linguaggio standard dei Sistemi di Imaging Medico.
Le informazioni contenute nell'intestazione DICOM sono molteplici, per esempio: nome e cognome del paziente, il tipo di scansione, posizione e dimensione dell'immagine ecc.
- Per inizializare un array abbiamo studiato due funzioni:
- ones: La funzione ones() del modulo numpy mi permette di creare una matrice o un vettore con tutti gli elementi uguali a uno.
- zeros: La funzione zeros() del modulo numpy mi permette di creare una matrice con n righe e m colonne con tutti gli elementi uguali a zero.
Region of Interest
Vari livelli di compressione:
Perdita dei dettagli:
Lorem ipsum dolor sit
Pixel
Il termine pixel deriva da "picture element", che sta a indicare il più piccolo componente discreto di un'immagine o immagine su uno schermo.
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).
Visualizzare immagine:
Visualizzare il negativo dell'immagine(sfondo bianco, contorno nero):
Visualizzare immagine in bianco e nero:
Possiamo inoltre colorare l'immagini utilizzando i colori RGB:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod.
Array multidimensionali
Un ndarray è un contenitore multidimensionale di elementi dello stesso tipo e dimensione. Il numero di dimensioni ed elementi in un array è definito dalla sua forma, che è una tupla di N numeri interi non negativi che specificano le dimensioni di ciascuna dimensione.