AtasoyWeb - Hüseyin Atasoy
AtasoyWeb
Hüseyin Atasoy'un Programlama Günlüğü

Histogram Eşitleme

Histogram eşitleme (equalization) algoritması nasıl çalışır? Ne işe yarar? Hangi resimler üzerinde uygulanmalıdır?
Histogram Eşitleme Örnek

Öncelikle histogram nedir? Histogram bir resimdeki renk değerlerinin sayıları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 piksellerin 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.

Hızlıca yöntemin uygulanışına bakalım. İlk önce resmin histogramını elde etmemiz gerekiyor. Bunun için 256 elemanlı bir dizi tanımlayıp, resmin tüm piksellerini gezmemiz şart. Pikselleri gezerken, 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 histogramı bulmak. Kümülatif histogram, her renk değerinin, kendisinden önceki renk değerleri ile toplanmasıyla elde edilir. Örneğin eğer resimde 0 değerli piksel sayısı 5, 1 değerli piksel 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 piksel 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 piksellerini tekrar tarayıp, her pikseli, normalize edilmiş renk dizimizde, renk değerine karşılık gelen değer ile boyuyoruz.

Yazar: Hüseyin Atasoy
Posted: 28/01/2009 22:30
Keywords: histogram eşitleme, hisrogram equalization, histogram dengeleme

Leave Comment

 
You are replying to comment #-1. Click here if you want to cancel replying.

 

Comments (6)

akif
Reply
02/12/2009 13:52
#1

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

sevim
Reply
14/01/2010 18:02
#2

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
Reply
15/01/2010 15:32
#3

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 alınabilir. Bu sadece resmin ışığını azaltır.

karincayazilim
Reply
24/10/2010 15:23
#4

merhaba hocam ;
Yatay ve dikey histogram eşitleme nedir.Bilginiz var mı?

Hüseyin Atasoy
Reply
24/10/2010 19:54
#5

Histogram eşitlemenin yatay ve dikey yapılabildiğine hiç rastlamadım. Ama yatay ve dikey histogramlar ayrı ayrı elde edilebilir. Genelde binary görüntüler üzerinde konum tespitlerinde kullanılır. Yatay histogram, yatay satırları oluşturan pixellerin parlaklık değerlerinin, satır içindeki pixel sayısına(yani aslında resmin genişliğine) bölünmesi ile elde edilir. Dikey histogramda ise aynı mantık ile görüntüdeki sütunlar ele alınır. Kullanım alanlarına örnek verecek olursak, el yazısı tanıma sistemlerinde satırlar dikey histogram, harfler de yatay histogram hesaplaması ile tespit edilebilir.
İyi çalışmalar...

buse
Reply
31/10/2016 23:54
#6

Hocamın anlatmak istediğini hocamdan daha iyi anlatmışsınız teşekkürler saygılar :))

 
Şu an bu sayfada 1, blog genelinde 12 çevrimiçi ziyaretçi bulunuyor. Ziyaretçiler bugün toplam 2553 sayfa görüntüledi.
 
Sayfa 50 sorgu ile 0.062 saniyede oluşturuldu.
Atasoy Blog v4 © 2008-2024 Hüseyin Atasoy