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...
  Histogram Eşitleme
   Öncelikle histogram nedir? Histogram bir resimdeki renk değerlerinin sayısını gösteren grafiktir. Histogram dengeleme veya eşitleme de bir resimdeki renk değerlerinin belli bir yerde kümelenmiş olmasından kaynaklanan, renk dağılımı bozukluğunu gidermek için kullanılan bir yöntem.

   Bu yöntem, her resmi iyileştirmez. Yalnızca tüm pixellerin belli araklıkta renk değerine sahip olduğu resimlerde etkilidir.

   Resim gri ve tonlarından oluşuyorsa sorun yok, ama eğer renkli bir resim üzerine bu yöntem uygulanacaksa ve RGB değerleri ile işlem yapılıyorsa o zaman rekleri ayrıştırıp, kırmızı, mavi, yeşil renklerinin her biri için ayrı ayrı histogram dengeleme yapılmalıdır.

   Şimdi de bu yöntemin uygulanışına bakalım. İlk önce resmin histogramını elde etmemiz lazım. Bunun için 256 elemanlı bir dizi tanımlayıp, resmin tüm pixellerini gezmemiz lazım. Pixelleri tararken, dizimizin her bir indisine rastlandığında o indise karşılık gelen elemanı bir arttırıyoruz. Yani yaptığımız şey, resim üzerinde 0dan 255e kadar olan renk değerlerini saymak. Bu iş bittikten sonra elimizde resmin histogramı bulunmuş oluyor. İstersek bunu grafiğe döküp histogramının dengeli olup olmadığını kontrol edebiliriz. Ama zaten histogramı bozuk bir resim üzerinde işlem yaptığımızı varsayıyorum...

   İkinci adım kümülatif(cumulative) histogramı bulmak. Kümülatif histogram, her renk değerinin, kendisinde önceki renk değerleri ile toplanmasından elde edilir. Örneğin eğer resimde 0 değerli pixel sayısı 5, 1 değerli pixel sayısı 20 ise, kümülatif histogramı içinde tutacak dizinin 1 değerine karşılık gelen elemanı 5+20=25 değerine sahip olmalı. Bu işlemi tüm değerler için(0-255) tamamladıktan sonra artık elimizde kümülatif histogram da var.

   Sırada normalizasyon adımı var. Bu adımda kümülatif histogramın her değerini, resimde olmasını istediğimiz en büyük değer ile çarpıp pixel sayısına bölüyoruz. Ve sonuçta her renk değerinin normalize edilmiş rengine ulaşıyoruz. Bu adımı da tüm renk değerlerine uygulamayı ihmal etmiyoruz ve artık histogram dengeleme işini bitirmiş oluyoruz.

   Son olarak dengelenmiş renkleri resmimize yansıtıyoruz. Bunun için resmin tüm pixellerini tekrar tarayıp, her pixeli, normalize edilmiş renk dizimizde, renk değerine karşılık gelen değer ile boyuyoruz. Aşağıda bu konuda en çok kullanılan histogramı bozuk örnek resim üzerinde uygulanmış histogram eşitleme işleminin sonucunun ekran görüntüsünü görebilirsiniz:

Histogram Eşitleme Örnek

 
Okunma Sayısı: 1433
Yayınlanma Tarihi: Blogun eski sürümü ile yazılmış, tarih kaydı bulunmuyor...
Anahtar Kelimeler: histogram, eşitleme, equalization, dengeleme, resim, işleme, algoritma
Yorumlar ( 4 )
akif
#1

02/12/2009, 12:52

Basit bir histogram programı ile belirtilen resim üzerinde değişiklik yapmam gerekiyor . Örnek bir c# programı gönderirdseniz sevinirim..
Hüseyin Atasoy
#2

04/12/2009, 18:15

C# bilmiyorum, elimde bu dille yazılmış bir kod yok malesef.
sevim
#3

14/01/2010, 17:02

Hocam "Sırada normalizasyon adımı var. Bu adımda kümülatif histogramın her değerini, resimde olmasını istediğimiz en büyük değer ile çarpıp pixel sayısına bölüyoruz. Ve sonuçta her renk değerinin normalize edilmiş rengine ulaşıyoruz." bu ifadenizde resimde olmasını istediğimiz en büyük değer ne demektir acaba nasıl belirlenir bu?
Hüseyin Atasoy
#4

15/01/2010, 14:32

Resimde olmasını istediğimiz en büyük değerden kasıt şu; normalde renk değerleri 0-255 arasında bulunur. En büyük değer olan 255 yerine örneğin 200ü alabilirsin. Bu sadece resmin ışığını azaltır. Sen değeri 255 al...
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 > Histogram Eşitleme
Menü