Mehmet Akif Akkus

Bir Bilgisayar Mühendisinin Günlüğü

Thursday, Feb 23rd

Last update:01:05:22 PM GMT

Headlines:
RSS
You are here: Projeler Görüntü işleme Görüntünün histogramını eşitleme

Görüntünün histogramını eşitleme

e-Posta Yazdır PDF

goldhill_512

Çektiğimiz fotoğrafların çoğu zaman bazı etkenlerden dolayı kaliteli olmadığını görürsünüz. Hatırlarsanız yetersiz ışık seviyesinde çekilen fotoğraflarda bulanık veya flu diye tabir edebileceğimiz renlerin veya tonların keskin şekilde belli olmaması gibi bir durumla karşılaşabiliriz.

 

Bu durumda resim pek keyif vermeyen bir duruş sergileyecektir. İşte bu gibi durumlarda resmin histogram eşitlemesini yapabiliriz. Histogram eşitlemesi demek; resmin histogram eğrisi grafiğinden görüldüğü üzere grafiğin bir kısmında oluşan yoğunlaşmayı grafiğe homojen şekilde dağıtmaya çalışır ve görüntü üzerinde bir nevi düzeltme çalışması yapar. Dolayısı ile yandaki resim biraz bulanık görünmektedir.

 

Dolayısıyla histogram eşitleme resmin renk çeşitliliğini artırır ve göze daha rahat ve algılanabilir hale getirir. Önceden resim koyu ağırlıklı veya açık ağırlıklı renklerden oluşuyorsa histogram eşitleme yapıldıktan sonra resim koyu ve açık renklerin ikisini de içerir hale gelir ve daha net görünür.Aşağıda histogram grafiği verilmiş bir resmin orjinal fotoğrafta orta tarafa yoğunlaşmış şekilde biriktiğini görüyoruz. İşte eşitleme işleme bunu resimde tüm koyuluklar içerilecek şekilde tüm resim geneline yayılmaktadır.

 

 

 

 

 

 

Yukarıdaki resimin histogram eşitlemesi  yapıldıktan sonraki hali aşağıda verilmiştir.

goldhill_512_result

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Aşağıda histogram alan örnek kod görünmektedir:

function[] = hw1_3(I, Ihisteq)

[F, props] = myimread(I);

 

imW = props(1); %width of image

imH = props(2); %height of image

imL = props(3); %L of image

 

nk = zeros(imL+1, 1);

prrk = zeros(imL+1, 1);

result = zeros(imL+1, 1);

MN = imH * imW;

 

for i = 1:imW

for j=1:imH

k = uint16(F(j,i));

k = k+1;

nk(k) = nk(k) + 1;  % bir yoğunluk değerinin kaç kez geçtiğini bul

end

end

 

for i = 1:imL+1   %yoğunluk değerlerinin yüzdeliklerini bul

prrk(i) = nk(i) / MN;

end

 

temp = zeros(1);

for i=1:imL+1

temp = temp + prrk(i);

result(i) = uint16(imL*temp);  % ? işlemi ile yeni histogram değerlerini bul

end

 

f_result = F;

for i = 1:imW %% 320

for j=1:imH %%240

temp  = F(j,i);

f_result(j,i) = result(temp+1); % resmi yeniden biçimlendir ve sonucu f_result yaz

end

end

 

imshow(F);

figure, imshow(f_result);

 

 


Related news items:
Newer news items:
Older news items:

Yorumlar  

 
-1 # 2011-06-07 01:03
ya bn anlamdım resim girişini nasıl yapacağız
Cevap | Alıntı | Alıntı
 
 
-1 # 2011-06-20 22:38
Bu kodları Matlab'da bir dosyanın içine koyuyorsunuz. Dosyanın ismini de "hw1_3" olarak kaydediyorsunuz .
Sonrasında başka bir yerden hw1_3(resim, eşitlenmişresim ) şeklinde çağırabilirsini z.

Kolay gelsin..
Cevap | Alıntı | Alıntı
 

Yorum ekle


Güvenlik kodu
Yenile