bu yazıda bir görüntü dosyasındaki piksel topluluklarının (connected components labeling) etiketlenmesi anlatılacaktır. örnek olarak aşağıdaki görüntüdeki solucanların sayısı bulunacaktır.
görüntüyü okuyalım, gösterelim ve inceleyelim:
>> gr = imread('c:/wrm.jpg');
>> imshow(gr)
arka plandan kurtulmak için renk kanallarını yukarıda belirtilen araçla inceleyelim. arka plan renginin değeri gri tonlarda
160 - 170 aralığında. solucanların silüetleri ise gri tonlarda
100'den başlayıp
70'e kadar iniyor (aşağıdaki ekran görüntüsünü inceleyiniz). bilindiği üzere
imread fonksiyonunun dönüşü matris biçiminde oluyor ve matrisler üzerinde mantıksal işlem yapılabiliyor.
görüntüyü tam anlamıyla gri tonlamalı hale çevirelim ve arka plandan kurtulalım:
>> sb = rgb2gray(gr); % görüntünün renk duzeni RGB'den gri tonlamalı hale çevriliyor
>> harita = sb < 150; % 150 değerinin altındaki pikseller sıfırlanıyor
>> imshow(harita)
ekran görüntüsü:
yukarıdaki görüntü incelendiğinde istenmeyen küçük piksel topluluklarının olduğu fark edilecektir. bu istenmeyen piksel topluluklarından "
64 adet pikselden daha az sayıda piksele sahip piksel topluluklarının kaldırılması" koşuluyla kurtulunabilir:
>> harita = bwareaopen(harita, 64);
>> imshow(harita)
ekran çıktısı:
artık piksel gruplarını etiketleyip solucan sayısını bulabiliriz:
>> [etiket, sayi] = bwlabel(harita);
>> sayi
sayi =
4
>>
eğer sadece 3. solucanı görmek isterseniz:
>> imshow(etiket == 3) % etiket matrisinde değeri 3 olan elemanlar
>>
ekran çıktısı:
çok basit olan bu örnek umarım sizin için faydalı olmuştur. örnek sizi yanıltmasın, çok daha karmaşık işler yapabilirsiniz...