In questo momento mi occupo dell'elaborazione delle immagini in Python tramite PIL (Python Image Library). Il mio obiettivo principale è contare il numero di cellule colorate in un'immagine immunoistochimica. So che ci sono programmi, librerie, funzioni ed esercitazioni pertinenti su di esso, e ho controllato quasi tutti. Il mio obiettivo principale è scrivere il codice manualmente da zero, per quanto possibile. Quindi sto cercando di evitare di usare molte librerie e funzioni esterne. Ho scritto la maggior parte del programma. Quindi ecco cosa sta succedendo passo dopo passo:
Il programma accetta il file immagine:
E lo elabora per i globuli rossi (sostanzialmente, disattiva i valori RGB al di sotto di una certa soglia per il rosso):
E crea la sua mappa booleana, (ne incollerà una parte poiché è grande) che sostanzialmente mette 1 ovunque si trovi con un pixel rosso nella seconda immagine elaborata sopra.
22222222222222222222222222222222222222222
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000011111100000000000000000001100002
20000000001111100000000000000000011111002
20000000000110000000000000000000011111002
20000000000000000000000000000000111111002
20000000000000000000000000000000111111102
20000000000000000000000000000001111111102
20000000000000000000000000000001111111102
20000000000000000000000000000000111111002
20000000000000000000000000000000010000002
20000000000000000000000000000000000000002
22222222222222222222222222222222222222222
Ho intenzionalmente generato quel frame come qualcosa sui bordi con 2s per aiutarmi a contare il numero di gruppi di 1 in quella mappa booleana.
La mia domanda per voi ragazzi è: come mai posso contare in modo efficiente il numero di celle (gruppi di 1) in quel tipo di mappa booleana? Ho trovato http://en.wikipedia.org/wiki/Connected-component_labeling che sembrano estremamente correlati e simili, ma per quanto vedo, è a livello di pixel. Il mio è a livello booleano. Solo 1s e 0s.
Molte grazie.