Saya sekarang berurusan dengan beberapa pemrosesan gambar di Python via PIL (Python Image Library). Tujuan utama saya adalah menghitung jumlah sel berwarna dalam gambar imunohistokimia. Saya tahu bahwa ada program yang relevan, perpustakaan, fungsi dan tutorial tentang hal itu, dan saya memeriksa hampir semuanya. Tujuan utama saya adalah menulis kode secara manual dari awal, sebanyak mungkin. Karenanya saya mencoba untuk menghindari menggunakan banyak perpustakaan dan fungsi eksterior. Saya telah menulis sebagian besar program. Jadi, inilah yang terjadi selangkah demi selangkah:
Program mengambil file gambar:
Dan memprosesnya untuk sel merah (pada dasarnya, mematikan nilai RGB di bawah ambang batas tertentu untuk merah):
Dan menciptakan peta boolean itu, (akan menempel bagian dari itu karena besar) yang pada dasarnya hanya menempatkan 1 di mana pun ia bertemu dengan piksel merah pada gambar kedua yang diproses di atas.
22222222222222222222222222222222222222222
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000011111100000000000000000001100002
20000000001111100000000000000000011111002
20000000000110000000000000000000011111002
20000000000000000000000000000000111111002
20000000000000000000000000000000111111102
20000000000000000000000000000001111111102
20000000000000000000000000000001111111102
20000000000000000000000000000000111111002
20000000000000000000000000000000010000002
20000000000000000000000000000000000000002
22222222222222222222222222222222222222222
Saya sengaja membuat bingkai seperti itu di perbatasan dengan 2s untuk membantu saya menghitung jumlah grup 1s di peta boolean itu.
Pertanyaan saya kepada kalian adalah, kenapa saya bisa menghitung jumlah sel (grup 1s) dalam peta boolean seperti itu secara efisien? Saya telah menemukan http://en.wikipedia.org/wiki/Connected-component_labeling yang terlihat sangat terkait dan mirip, tetapi sejauh yang saya lihat, ini berada pada tingkat piksel. Milik saya berada di tingkat boolean. Hanya 1s dan 0s.
Terima kasih banyak.