18 Eylül 2014 Perşembe

Matlab'da Kenar Bulma

Matlab ile yapabileceğimiz onca şeyden biri de görüntü işleme kapsamında tanıdığımız kenar bulma .
Görüntüsü alınmış bir nesnenin kenarları nasıl belirlenir ona bakacağız . Ayrıca kenar bulma işlemi görüntü üzerinde yapılabildiği gibi anlık olarak alınan video üzerinde de gerçekleştirilebilmektedir . Bunu da gelecek yazılarımızda göstereceğim.



 Kenar Bulma Yöntemi
   Birçok renkli kenar bulma metodunda tek  renkli görüntü temelli teknikler kullanılmaktadır . Bir renkli görüntü için tek renkli hali her  piksel için parlaklık bileşeni kullanılarak elde edilmektdir.

   Gri seviyeli görüntülerdeki kenarlar parlaklıkta yer alan süreksizliklerin olduğu bölgeler olarak veya parlaklık derecelerinin birbirinden belirgin olarak birbirinden farklı olduğu iki bölge arasındaki sınır olarak  tanımlanabilir.
Şimdi Kodlarımızı tanıta tanıta ilerleyelim ;

kenarresim= imread('C:\Users\mustafa\Desktop\kenarresim.j2c');
imshow(kenarresim)

Buraya kadar olan kısmı daha önce de analiz etmiştik , kameradan bir görüntü alıp ekranda gösterme işlemimiz tamamlandı .


kenargray=rgb2gray(kenarresim);
cannyFiltresi=edge(kenargray,'canny');
robertsFiltresi=edge(kenargray,'roberts');
sobelFiltresi=edge(kenargray,'sobel');
subplot(2,2,1),imshow(kenarresim)
title('Orijinal Resim');
subplot(2,2,2),imshow(robertsFiltresi)
title('Roberts Filtreli Hali');
subplot(2,2,3),imshow(cannyFiltresi)
title('Canny Filtreli Hali');
subplot(2,2,4),imshow(sobelFiltresi)
title('Sobel Filtreli Hali');

kenargray=rgb2gray(kenarresim);
kenarresim ile tutulan resmimizi gri tonlu hale getirdik .Böylece uygulayacağımız filtre işlemiyle birlikte resmimizi binary haline getirmemiz kolaylaşmış oldu. Renkli bir görüntü ile gri seviyeli bir görüntü arasındaki temel fark gri seviyeli görüntülerde bir piksele atanan değer skalar gri seviyesi iken renkli görüntülerde piksele atanan üç bileşenden oluşan bir renk vektörüdür. Bu nedenle resmimizi gri seviyeli hale getirmiş olduk ve kenar bulmak için hazır hale getirdik.
cannyFiltresi=edge(kenargray,'canny');
gri tonlu hale çevrilmiş resmimiz bu komutla birlikte  canny filtresi uygulanmasıyla  resmimiz binary olacak şekilde kenarlar bulunmuş oldu ve cannyFiltresi değişkenine atandı.
robertsFiltresi=edge(kenargray,'roberts');
gri tonlu hale çevrilmiş resmimiz bu komutla birlikte  roberts filtresi uygulanmasıyla  resmimiz binary olacak şekilde kenarlar bulunmuş oldu ve robertsFiltresi değişkenine atandı.
sobelFiltresi=edge(kenargray,'sobel');
gri tonlu hale çevrilmiş resmimiz bu komutla birlikte  sobel  filtresi uygulanmasıyla  resmimiz  binary olacak şekilde kenarlar bulunmuş oldu ve sobelFiltresi değişkenine atandı.

Title komutu ile de her resmin başlığını kaydetmiş olduk .





Son olarak orijinal resmimizi ve bizim için en uygun olduğuna karar verdiğimiz Roberts Filtresini kullanarak oluşturduğumuz resmimizi gösterebiliriz.

subplot(2,2,[1 2]),imshow(kenarresim)
title('Orijinal Resim');
subplot(2,2,[3 4]),imshow(robertsFiltresi)
title('Roberts Filtreli Hali');









Hiç yorum yok :

Yorum Gönder