
Ç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.

Â
Â
Â
Â
Â
Â
Â
Â
Â
Â
Â
Â
Â
Â
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);
Â
Â
| < Önceki | Sonraki > |
|---|
- 23/06/2011 04:59 - Bir Görüntü İşleme Projesi : Damar Kalınlığı Tespi…
- 18/06/2011 23:26 - Buğday Sınıflandırma Projesi
- 20/12/2010 08:46 - Görüntü Düzleştirme Algoritmaları
- 22/10/2010 08:13 - Bir görüntü işleme projesi:Sanal Fare
- 28/07/2010 07:49 - OpenCV2.X Visual Studio2008 ile Kullanımı
- 25/06/2010 18:33 - Görüntü İşlemeye Başlarken...












Yorumlar
Sonrasında başka bir yerden hw1_3(resim, eşitlenmişresim ) şeklinde çağırabilirsini z.
Kolay gelsin..
RSS beslemesi, bu iletideki yorumlar için.