IMAGE PROCESSING PER LA MICROSCOPIA
cod. 1011779

Anno accademico 2023/24
2° anno di corso - Secondo semestre
Docente
- Massimo MANGHI
Settore scientifico disciplinare
Fisica applicata (a beni culturali, ambientali, biologia e medicina) (FIS/07)
Field
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
35 ore
di attività frontali
5 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

La diffusione dei sistemi di imaging digitale nel laboratorio di biologia non trova una sufficiente consapevolezza degli aspetti tecnici legate alle varie tecniche di imaging and dei problemi connessi con la rappresentazione digitale delle immagini

Viene esposto come "case study" il funzionamento generale di un microscopio e le sue caratteristiche ottiche. Con il corso lo studente acquisisce competenza nella comprensione delle basi della microscopia e della rappresentazione digitale di immagini informatiche e matematiche di rappresentazione e trasformazione delle immagini. Impara inoltre ad usare strumenti generali e non specifici di un contesto o applicazione per il raggiungimento degli obiettivi già citati. L'insegnamento ha come scopo quello di migliorare le competenze ed apprendere tecniche di manipolazione dei dati che potrebbero indurre nuove capacità di apprendimento

Prerequisiti

- - -

Contenuti dell'insegnamento

Il corso è strutturato in due parti che hanno svolgimento parallelo o alternato,

Una parte è tenuta in lezioni frontali concentrata su aspetti teorici riguardanti la formazione dell'immagine e la sua acquisizione digitale, la rappresentazione binaria di immagini a colori, in scala di grigi o binarie e le basi dei metodi di analisi e trasformazione di immagini digitali

La seconda parte è costituita da lezioni sia frontali che in laboratorio informatico dove i metodi già menzionati sono applicati a casi pratici o esplicativi usando la shell matematica Octave, clone dal punto di vista sintattico del linguaggio, della più conosciuta shell Matlab

Programma esteso

Introduzione
Introduzione al corso
Basi della formazione dell'immagine
Sistemi elettronici di rilevamento delle immagini
Rappresentazione di un immagine e dei colori
Tipi di Immagine
Fondamenti di Microscopia
Origini
Microscopia Ottica
+ Trattazione analitica di immagini formate tramite lenti
+ Caratteristiche
+ Lunghezza Focale
+ Apertura Numerica
+ Forma delle Lenti
Sistemi Ottici "Diffraction-Limited"
Illuminazione Incoerente
Risoluzione dell'Immagine
Aberrazioni
Calibrazione degli strumenti di microscopia
Rappresentazione digitale e storaggio delle immagini
Rappresentazione digitale dell'immagine
Digitalizzazione di un immagine
Rappresentazione binaria
Matrice di Pixel
Modelli di rappresentazione di immagini
Grayscale
RGB
Indexed
Formati per lo Memorizzazione e la Trasmissione di Immagini
Problematiche legate all'immagazzinamento o alla trasmissione di
immagini
Formati Comuni
TIFF
GIF
PNG
JPEG : principi di organizzazione e problematiche legate ad esso
Introduzione al linguaggio di Matlab/Octave
La shell di Octave: espressioni aritmetiche
Variabili: creazione e assegnazioni
Matrici, Array e Scalari
Operazione tra scalari, tra matrici e operazioni tra scalari e matrici
Sintassi per la composizione di matrici
Applicazioni di funzioni a Vettori e Matrici: il caso di sum , min e max
Le funzioni ones e zeros
Plotting con Matlab/Octave
Grafico della funzione radice quadrata sqrt tra 0 e 100
La funzione linspace per generare sequenze uniformi di valori
intervallo dato
Plot di funzioni multiple all'interno dello stesso diagramma.
Esempio: tracciare e confrontare 6 funzioni trigonometriche
Plotting 3-dimensionale
La funzione meshgrid per creare matrici di coordinate nel piano
Plot della superficie della funzione exp(-(x2 +y2 ))
Plot della funzione exp(-(x2 +y2 )/d)*cos(2*pi*omega*(x2+y2)))
Matrici ed Immagini in Matlab/Octave
Rappresentazione interna di immagini grayscale , RGB o indexed
Classi di rappresentazione dei dati (funzione class di Octave) e
range di valori convenzionali ad esse associati
Numeri interi
Numeri in virgola mobile
Alcuni aspetti critici legati alla rappresentazione binaria
Stringhe di caratteri
Scripting in Octave
Esecuzione di script salvati in m-files
Ragioni per costruire m-files con script Octave
Le funzioni di Octave: definizione e struttura di una funzione
Strutture fondamentali di controllo dell'esecuzione di uno script
Struttura condizionale
Struttura if...else...endif
Struttura switch ... case ...endswitch
Esempio: funzione di clamping del valore di un singolo pixel
Cicli
Ciclo for...endfor
Ciclo while...endwhile
Ciclo do...until
Esempio di uso per do...until : studio della funzione tanh
Definizione di una funzione in function...endfunction
Lista degli argomenti di Input/Output di una funzione
Linee per la generazione automatica della pagina di "help" di una
funzione
Esempio: matshuffle.m , una funzione che riordina in modo casuale gli
elementi di una matrice
Image Package
Alcune delle funzioni di base del package image
Rappresentazioni interne di base
Immagini binarie
Immagini grayscale
Immagini RGB
Immagini Indexed
Funzione iminfo
imread : lettura di un file grafico
imwrite : lettura
imshow : display di una immagine
Esempio: Costruzione di un immagine grayscale 8x8
Esempio : costruzione di un immagine a colori RGB 8x8
Intensity Transformation
Funzioni di manipolazione di base di una matrice contenente un'immagine
rgb2gray : conversione di un immagine in formato RGB (NxMx3)
in un immagine grayscale . Formula di conversione del valore di
un pixel in formato RGB in un valore equivalente di luminosità
mat2gray : ricalcolo della matrice di un immagine e creazione di
una matrice equivalente con valori nell'intervallo [0...1]
rgb2ind : conversione di un'immagine RGB in un'immagine 'indexed'
Istogramma di un immagine e caratterizzazione generale
Calcolo di un istogramma
Relazione immagine-istogramma
Istogrammi di immmagini sovraesposte/sottoesposte
Contrasto
Dinamica
Calcolo e display dell'istogramma con la funzione imhist
Point operation
inversione della luminosità
alterazione del contrasto
alterazione della luminosità
Esempio di codice Octave per la manipolazione della luminosità
di un'immagine
Trasformazione logaritmica
Trasformazione esponenziale
Thresholding: scopo principale
Modifica automatica del contrasto
Modifica automatica con algoritmo modificato (saturazione code)
Equalizzazione dell'istogramma
Trasformazione dell'istogramma secondo un istogramma dato
Filtri
Filtri lineari
Smoothing filters
Calcolo della trasformazione dovuta ad un filtro lineare
Filtro di media a primi vicini (3x3)
Effetto di smoothing su una immagine corrotta da rumore
Filtri di differenza
Formulazione Convolutiva
Filtro "indentità" (δ)
Determinazione della PSF di un sistema ottico
Filtri non lineari
Filtro di massimo e minimo
Filtro di mediana
Esempi di applicazione di filtri non lineari ad immagini corrotte
da rumore
Edge Enhancement
Individuazione e rafforzamento dei bordi
Definizione e caratteristiche di un bordo
Interpretazione del significato di derivata locale come indicatore
di un bordo
Gradiente di luminosità e suo significato
Forza di un bordo
Orientamento di un bordo
Filtri di derivazione e loro effetto su un'immagine di prova
Matrici di Prewitt e Sobel
Matrici di Roberts
Funzione 'edge' dell'image package
Metodo di Canny
Edge Sharpening
Strategia generale del rafforzamento dei bordi
Effetto dell'operatore di Laplace sull'immagine di prova
Tecnica di sharpening basata sull'operatore di Laplace
Tecnica di Unsharp Masking

Bibliografia

Q. Wu, F.A. Merchant, K.R. Castleman
Microscope Image Processing
Editore: Elsevier

W. Burger - Mark J. Burge
Digital Image Processing
Editore: Springer

Chris Solomon - Toby Breckon
Fundamentals of Digital Image Processing
Editore: Wiley-Blackwell

M.Petrou - C.Petrou
Image Processing: the Fundamentals
Editore: Wiley

Metodi didattici

Circa metà del corso è fatto da lezioni frontali di apprendimento delle basi e l'altra metà da esercitazioni pratiche eseguite in laboratorio didattico.

Modalità verifica apprendimento

- - -

Altre informazioni

- - -