Testo d`esame del 25/7/2011 (a) Sia data l`immagine mostrata nella

Testo d’esame del 25/7/2011 (a)
Sia data l’immagine mostrata nella figura seguente, contenuta nel file circlesx.png (derivata da una
delle immagini di cui MATLAB è corredato, circles.png):
Con un po’ di fantasia, l’immagine potrebbe rappresentare un insieme di cellule (bianche) visibili al
microscopio, così vicine tra loro da toccarsi, alcune delle quali internamente corredate da due
corpuscoli (“nuclei”, rappresentati dalle macchiette ellittiche grigie), altre da uno solo.
Si richiede di:
1) trovare il raggio (in pixel) delle “cellule”, supposte circolari e tutte uguali
2) individuare e segnalare (tramite una crocetta nel rispettivo centroide) le cellule che hanno al
loro interno due nuclei anziché uno.
Se le cellule non fossero a contatto, il compito sarebbe semplice: consisterebbe in:
 applicare una soglia opportuna per binarizzare l’immagine, in modo che
nell’immagine bianco/nero risultassero visibili le maschere delle varie “cellule”
come cerchi bianchi su sfondo nero;
 trovare in essa gli oggetti connessi (i cerchi) chiedendone la misura del raggio e la
posizione dei centroidi;
 per ciascun oggetto dell’immagine binaria, isolare dall’immagine originale la cellula
corrispondente (tramite prodotto per la singola maschera), applicare una soglia per
evidenziare solo i nuclei, e trovare gli oggetti connessi individuati da ciascuna
maschera.
Invece, essendo le cellule a contatto, il lavoro da fare è maggiore!
Suggerimenti:
 Per separare le cellule, si può ricorrere ad operazioni di morfologia matematica (dopo aver
trasformato l’immagine in bianco/nero). In seguito, si potrà individuare il centroide di
ciascuna cellula. Le operazioni morfologiche per il distacco, però, ridurranno la dimensione
delle cellule, per cui la misura del raggio sarà alterata.
 Per trovare il raggio effettivo (originale) delle cellule, si suggerisce di ricostruire, a partire
dal centroide, ciascuna cellula tramite (ad esempio) una function di disegno di cerchi (già

vista in altri esercizi fatti durante il Corso). Si farà variare il raggio della cellula ricostruita
iterativamente, da un valore minimo ad uno massimo, confrontando – ad ogni ricostruzione
– l’immagine ottenuta con quella originale (trasformata in bianco/nero). Il confronto potrà
essere ottenuto con l’AND tra l’immagine ricostruita e l’originale binarizzata: tale AND sarà
identico all’immagine ricostruita, fintantoché il raggio usato per la ricostruzione sarà più
piccolo o uguale a quello reale (i cerchi disegnati cadono dentro quelli originali); appena il
raggio supererà quello effettivo, i cerchi ricostruiti conterranno anche alcune parti che
nell’immagine iniziale binarizzata sono neri, e quindi l’AND tra le due immagini sarà più
piccolo dell’immagine ricostruita. Calcolando il rapporto tra la aree accese nelle due
immagini, questo sarà dunque pari all’unità all’inizio, per poi decrescere quando il raggio
usato per la ricostruzione supererà quello effettivo dei cerchi.
Trovato R, occorrerà usare i centroidi delle singole cellule, e il raggio R, per ricostruire le
maschere delle singole cellule; con queste maschere si isoleranno nell’immagine iniziale
(opportunamente binarizzata) i nuclei che ad esse competono (oggetti connessi), che saranno
contati per decidere se sono uno o due. Si metteranno infine le crocette in base a
quest’ultima misura.
Il risultato dell’esecuzione del programma dev’essere:
Giorgio De Nunzio