ben

OMÜ , Bilgisayar Mühendisliği, 13'

5 Mart 2014 Çarşamba

Görüntü işleme çalışmaları-1

   ZAR BULMA: Yesil zemin üzerinde bulunan kırmızı zardakı mavi noktalara göre zarın kac oldugunu bulma


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: