function v = zarBul(I)
[R C] = size(I);
yeni = zeros([R C/3]);
%yeni isminde aynı boyutlarda 2 boyutlu resim oluşturuyoruz
I(I <= 100) = 0;
%100 un altındaki tum piksell degerlerini 0 a çekiyoruz çunku aslın renk pikseli 100den buyuk olmalı
I(I(:,:,1) > 100) = 1;
% kırmızı tonlarda "red" kısmını 1 yaptık çünkü I(r,c) dedimiz o koridnattaki "red" in piksel degerini doner bize rengine bakmaksıznı
I(I(:,:,2) > 100) = 1;
% yeşil tonlardaki "red" kısmına 1 degerini atadık çünkü resmi siyah beyaza cevrdimizde yesil ve kırmızı siyah
I(I(:,:,3) > 100) = 2;
%mavi tonları beyaz yapıcaz boylece etiket sayarak kac atıldını bulcaz
for r=1:R %resmin içinde dolaşıyoruz
for c=1:C/3
if I(r,c) == 2
% "red" değeri 2 olan ların kordinatına denk gelen kısma 1 atıyarak yeni isimli siyah beyaz fotomuzu elde ediyoruz
yeni(r,c) = 1;
end
end
end
etiket = bwlabel(yeni);
%yeni oluşan fotomuzu etiketliyoruz
sayi = length(unique(etiket))-1;
%unique yardımıyla kac farklı etiket degeri oldunu buluyoruz bunun 1 eksigi bize zarın kac oldugunu gosteriyor
fprintf('sayi = %d\n',sayi);
v = sayi;
end
EN BÜYÜK YILDIZ: resimde görünen yıldızların içinde en buyuk yıldızı bulma
yldz=imread('yildiz.png');
yldz=rgb2gray(yldz);
figure(1);imshow(yldz);
[sat,sut]=size(yldz);
yeni=yldz;
for i=1:sat
for j=1:sut
if(((i+2)<=(sat))&&((j+2)<=(sut)))
d=yldz(i:i+2,j:j+2);
ortd=sum(d(:)).*(1/9);
yeni(i+1,j+1)=ortd;
end
end
end
% resmin 8 li kareye gore ortalamasını alıp resimdeki gürültülerden kurtulduk
bw=im2bw(yeni,graythresh(yeni));
L=BWLabel(bw);
im=regionprops(L,'Area');
m=[im.Area];
mx=max(m(:));
f=m>=mx;
[x,y]=find(f==0);
for k=1:length(y)
bul=find(L==y(k));
L(bul)=0;
end
yeni_L=bwlabel(L,8);
yeni_L=yeni_L.*double(yeni);
figure(2); imshow(uint8(yeni_L));
Hiç yorum yok:
Yorum Gönder