Onaylı Üye
Bu uygulamada resmin içindeki bozuk paraları bulmaya, etiketlemeye ve değerlerine göre hesaplamaya çalışacağız. Görüntü olarak Matlab programında hazır bulunan 'coins.png' yi kullandık.
Bunun için nesne tespiti yaptıktan sonra gürültülü pikselleri yok edeceğiz. Sonrasında ise bulunan nesnelerin etrafını belirgin hale getireceğiz (Segmentasyon - Bölütleme). Belirgin hale getirilen nesnelerin alanlarını ve merkezi noktalarını tespit edip sınıflandıracağız.
Örnek foto:
Bunun için nesne tespiti yaptıktan sonra gürültülü pikselleri yok edeceğiz. Sonrasında ise bulunan nesnelerin etrafını belirgin hale getireceğiz (Segmentasyon - Bölütleme). Belirgin hale getirilen nesnelerin alanlarını ve merkezi noktalarını tespit edip sınıflandıracağız.
Kod:
clc;
clear all;
figure; imshow('coins.png'); %orjinal resim şekli
coin1 = im2bw(imread('coins.png'));
coin2 = coin1;
coin3 = imfill(coin1,'holes'); %piksel çukurlarını doldur
figure; imshow(imread('coins.png'));
B = bwboundaries(coin3);
text(10,10,strcat('\color{white}Nesne Sayısı:',num2str(length(B))))
% bulunan nesneleri etrafını yeşil piksellerle işaretliyor
hold on;
for k=1:length(B),
boundary = B{k};
plot(boundary(:,2),boundary(:,1),'g','LineWidth',1);
end
% nesnelerin alan ve merkezi noktaları tespit ediliyor
[Bilgi,Number]=bwlabel(coin3);
prop=regionprops(Bilgi,'Area','Centroid');
total=0;
%büyüklüğüne göre sınıflandırma yapılıyor
figure; imshow(imread('coins.png'));
hold on
for n=1:size(prop,1)
cent=prop(n).Centroid;
X=cent(1);Y=cent(2);
if prop(n).Area>2000
text(X-10,Y,'5 C')
total=total+5;
else
total=total+10;
text(X-10,Y,'10 C')
end
end
hold on
title(['Toplam: ',num2str(total),'cent'])
Örnek foto: