Nokta Sayacı

Üniversitemin ilk döneminde sınıfımda gerçekleştirdiğim Bilgisayarlı Görme sunumumda kullanmak üzere artırılmış gerçeklik projesinin yanı sıra bu projeyi de gerçekleştirdim.

Bu projedeki amacım beyaz kağıdın üzerine serpiştirdiğim mercimek tanelerini saymak. Tamamen bilgisayarlı görme konseptine odaklı olan bu projemi hazır herhangi bir kütüphane kullanmadan temel bilgilerimle gerçekleştirmek istedim. En basitinden bir resimdeki tüm pixelleri işleyebilmek için iç içe for döngüsünü kullandım. Bu uygulama telefonun cpu’su üzerinde çalıştığı için biraz bekletiyor bu bekleme esnasında uygulama yanıt veremediği için kullanıcı deneyimi açısından çok kötü bir durum oluşuyor. Kullanıcı deneyimini artırmak adına AsycnTask kullandım ve işlemin ne kadar kaldığını progressbar ile kullanıcıya yani sunumuma katılanlara gösterdim

Point Counter Output

Algoritma

Siyah ve beyaz renklerin dışında baskın olan rengi algılayıp bu renk derecesine belli bir toleransa kadar yakın olan renkleri işaretleyerek baskın renk noktalarının tespitini gerçekleştirdim.

Sırada tespit ettiğim bu noktaların sayılma işlemine gelmişti. En çok bu kısımda sorun yaşadım. Yazdığım uygulama pixel odaklı saydığı için gerçek sayının çok üzerinde bir sonuç veriyordu. Bu sorunu ise sırası gelen pixelin sol üstünde 3 birimlik kare içerisinde sayılmış olan pixelleri sayılanlar listesinden çıkartarak asıl sayıya erişmiş oldum. 3 birim kare yapmamın sebebi görüntü kalitesinden dolayı aralara beyaz boşluklar girebiliyor ve bu boşluklar nedeniyle hatalı sonuç verebiliyordu. Soldaki resimde de göreceğiniz üzere mercimek tanelerininin sağ altında kalan kırmızı nokta baz alınarak sayma işlemi gerçekleştiriliyor.

Diğer eğitim projelerimde olduğu gibi bu projeminde kaynak kodlarını github sayfamda bulabilirsiniz.