Görüntü işlemede logaritmik dönüşüm(logarithmic transformation)

Log dönüşümleri bir resmin parlaklığını artırmada kullanılır. Düşük yoğunluklu (kontrast) resimler detayların artırılmasında kullanılır. 

Aşağıdaki formülle tanımlanabilir.

s=c*log(r+1)

burada r giriş pixelinin değeri, s ise çıkış pixelinin değeridir. Eğer giriş pixeli 0 gelirse log(0) değeri üretilir o da sonucu (-) sonsuz değerine götürür. Giriş değerine 1 eklenmesinin sebebi ise bu durumun önüne geçebilmek içindir. c ise bu dönüşümün katsayısıdır.

Log dönüşüm sırasında resimdeki koyu pikseller, yüksek piksel değerlerine (açık renkler) göre daha fazla yayılır ve bunlar açık değerler olur. Daha yüksek piksel değerleri (açık renkler) log dönüşümünde sıkıştırılır.

Aşağıda logaritmik dönüşümün grafiği gösterilmektedir.

Grafikten anlaşılacağı üzere koyu olan renklerin (0 a yakın olanlar) değerleri büyütülerek renk daha açık hale getirilmiş olur.

Aşağıda yazılan matlab kodunda c katsayı değerini kendimiz verebileceğimiz gibi, giriş pikselinin maksimum değeri olan 255'i sonuç olarak 255 üretecek şekilde düşünüp c değerini ona göre hesaplayabiliriz.

s=c*log(r+1) formülünden, r ve s değerlerini yerine koyarak c değerini hesaplarız. 255=c*log(255+1)

Bulduğumuz bu sabit değeri imge değişkenimizin (I) double hale dönüştürülmüş hali olan II değişkenine uygulayarak sonuç değerimizi elde ediyoruz.

I=imread('cameraman.png');
II=im2double(I);

c=255/log10(255+1);
s=c*log10(II+1);
ss=uint8(s);

subplot(1,2,1);
imshow(I);
title('Orjinal resim');

subplot(1,2,2);
imshow(ss);
title('Dönüşüm sonrası oluşan resim');

ETİKETLER
görüntü işlemeimage processingmatlablogaritmik dönüşüm
Öncekİ Yazı

jQuery ile inputa girilen bir yazıyı anlık temizleme

Sonrakİ Yazı

Php de json kullanımı

İlgili Yazılar