Bir Bilgisayar Mühendisi İçin Programlama Dili, Öğrendiklerini Sınadığı, Deneyler Yaptığı Bir Labaratuardır. Ve Mühendisler Deneylerini, Kestiremedikleri Sonuçları Gözlemlemek İçin Değil, Öngördükleri Sonuçları Doğrulamak İçin Yaparlar...
  Kenar Tespiti (Edge Detection)
   Kenar belirleme işlemi birçok alanda kullanılıyor. Bunun için sobel gibi çeşitli algoritmalar mevcut. Ama biz kendi algoritmamızı kendimiz oluşturalım :D
   Öncelikle kenar derken ne kastettiğimiz önemli. Resim üzerinde kenar, bir renkten diğer renge geçişin olduğu noktaların meydana getirdiği çizgi şeklinde tanımlanabilir. Şimdi işimiz daha kolaylaştı. Yapmamız gereken şey resim üzerindeki her pixeli taramak ve komşu pixel ile arasındaki renk farkını analiz etmek. Ancak unutulmaması gereken bir nokta daha var. Bilgisayar bizim bile farkedemeyeceğimiz ufak geçişleri önemser. Dolayısıyla her renk geçişini kenar kabul edersek kenar falan belirleyemeyiz. O halde bir eşik değerine ihityacımız var. Eğer fark bu eşik değerinin üstünde ise o zaman bu pixel bir geçiş pixeli olur.

   Buraya kadar herşey tamam. Peki pixelleri hangi komşu pixellerle karşılaştırmamız lazım? Eğer her pixelin sadece sağındaki pixelleri kontrol edersek yatay kenarları tespit edemeyiz. Sadece alttaki pixelle karşılaştırırsak bu sefer de dikey kenarları tespit edemeyiz. O halde her pixelin hem sağındaki hem de altındaki pixeller ile arasında bulunan farkı kontrol etmemiz lazım.

   Bu yöntemi sadece bir renk için uygulayabileceğiniz gibi tüm renkler için( asıl kenar tespiti bu ) de uygulayabilirsiniz. Ve eğer kullandığınız dil RGB değerleri ile işlem yapıyorsa bu değerleri renklerine ayrıştırıp renklerin tamamının aynı anda işleme konması ve hepsinin de eşik değerin üstünde fark vermesini şart koşmanız lazım. RGBnin nasıl ayrıştırılacağını başka bir yazıda açıklamıştım...

Kenar Belirleme Yöntemi

   Bu arada şunu da söylemeliyim; bir resim için kenar belirleme işleminde kullanacağımız eşik değerini bir başkası için kullanamayabiliriz. Çünkü her resmin kontrastı birbirinden farklı olabilir. Resimdeki eşik değerini resmin niteliğine göre ayarlayan bir fonksyon yazdım ama çok ta ayrıntılı deneme fırsatı bulamadım. Eğer tutarsa ilerde yazarım. Gerçi bu sorunu belli oranda gidermek için histogram eşitleme yöntemi var ama bu yöntem eşik değerinin değişmesi gerektiği resimlerde bu değeri yine de sabit tutamıyor. Histogram eşitleme yöntemini de ileriki yazılarda işleyeceğim...
 
Okunma Sayısı: 983
Yayınlanma Tarihi: Blogun eski sürümü ile yazılmış, tarih kaydı bulunmuyor...
Anahtar Kelimeler: kenar, edge, detection, tespit, belirleme, fark, pixel, yatay, histogram
Yorumlar ( 2 )
Musa
#1

17/11/2009, 18:06

Merhaba Hocam. Çalışmanız çok güzel. Acaba kaynak kodlarını paylaşmanız mümkün mü?
Hüseyin Atasoy
#2

18/11/2009, 11:57

Kaynak kod paylaşmıyorum normalde. Zaten maksat yöntemi vermek. Sonuçta herkes aynı dili kullanmıyor. Kolay gelsin...
Yorum/Görüş Bildir
Yorumları html kodu veya özel karakter kullanmadan, yazım kurallarına
dikkat ederek ve düzgün bir Türkçe kullanarak yazalım...
 
    Atasoy Blog v3.0 © 2009-2010 Hüseyin Atasoy | Tema Tasarımı: Hüseyin Atasoy
AtasoyWeb 1 yaşında, bu tema benden ona doğum günü hediyesi :)    
Programlama Günlüğü > Dijital Sinyal İşleme > Görüntü İşleme > Kenar Tespiti (Edge Detection)
Menü