Şu anda PIL (Python Image Library) aracılığıyla Python'da bazı görüntü işleme ile uğraşıyorum. Ana amacım bir immünohistokimya görüntüsünde renkli hücre sayısını saymak. Bununla ilgili programlar, kütüphaneler, fonksiyonlar ve öğreticiler olduğunu biliyorum ve neredeyse hepsini kontrol ettim. Asıl amacım kodu mümkün olduğunca sıfırdan manuel olarak yazmak. Bu yüzden çok sayıda dış kütüphane ve fonksiyon kullanmaktan kaçınmaya çalışıyorum. Programın çoğunu yazdım. İşte adım adım neler oluyor:
Program görüntü dosyasını alır:
Ve kırmızı hücreler için işler (temel olarak, kırmızı için belirli bir eşiğin altındaki RGB değerlerini kapatır):
Ve bunun boolean haritasını oluşturur, (büyük olduğu için bir kısmını yapıştıracaktır), temelde yukarıdaki işlenmiş ikinci görüntüde kırmızı bir pikselle karşılaştığı her yere 1 koyar.
22222222222222222222222222222222222222222
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000111111110000000000000000000000002
20000000011111100000000000000000001100002
20000000001111100000000000000000011111002
20000000000110000000000000000000011111002
20000000000000000000000000000000111111002
20000000000000000000000000000000111111102
20000000000000000000000000000001111111102
20000000000000000000000000000001111111102
20000000000000000000000000000000111111002
20000000000000000000000000000000010000002
20000000000000000000000000000000000000002
22222222222222222222222222222222222222222
Boolean haritasındaki 1'lerin grup sayısını saymama yardım etmek için bilerek bu çerçeveyi 2'ler ile sınırlarda bir şey gibi oluşturdum.
Size soruyorum, nasıl olur da bu tür boole haritasındaki hücre sayısını (1'lik gruplar) verimli bir şekilde sayabilirim? Son derece ilgili ve benzer görünen http://en.wikipedia.org/wiki/Connected-component_labeling bulduk , ancak gördüğüm kadarıyla piksel seviyesinde. Benimki boole seviyesinde. Sadece 1s ve 0s.
Çok teşekkürler.