9 Kasım 2009 Pazartesi

Doğrusal Karşıtlık Yayma

Karşıtlık yayma yenilebilir içilir bir şey mi diyorsanız kısaca günlük hayatta nerede kullanıyoruz bir kaç örnek vereyim. Örneğin cep telefonunuzla video çekerken gece modu gibi bir kip olduğunu fark etmişsinizdir. Gece ışık az olduğu için renkler belirli bir alana sıkışır. Örnek olarak gündüz 200 farklı renk tonu yakalayan telefonunuz gece 20-30 civarında farklı renk yakalayabilir. Bu yüzden telefon algıladığı görüntüye karşıtlık yayma uygular. Böylece karanlık bir görüntü yerine kabul edilebilir aydınlıkta bir görüntü elde edilecektir.

Üniversite son sınıfta yazdığım aşağıdaki matlab kodunu kullanarak belirli bir alana sıkışmış dizi değerlerini genlik değerleri koruyarak diziye dağıtabilirsiniz. Belki daha az işlem gücüne ihtiyaç duyan algoritmalar yazılabilir veya yazdığım kodlarda iyileştirme yapılabilir. Burada bir resim işleme amaçlandığından dizi değerleri 0~255 arasında yayma işlemi yapmaktadır. Matlab kodunun devamında ise iki örnek resmin karşıtlık yayma sonrasındaki halleri bulunmaktadır.

Aşağıdaki içeriğin Word belgesi sürümü


%Dogrusal karsitlik yayma program kodu

clear all,close all,clc;
imge=imread('imge1.tif');
imge2=double(imge);
[w,h]=size(imge);

% Orjinal resim histogrami:
H=zeros(256,1);
for i=1:w
for j=1:h
H(imge2(i,j)+1)=H(imge2(i,j)+1)+1;
end
end


d=255/(w*h);
c(1)=d*H(1);
for i=2:255
c(i)=c(i-1)+d*H(i);
end


for i=1:w
for j=1:h
imge3(i,j)=round(c(imge2(i,j)));
end
end

% Karsitlik yayilmis resim histogrami:
H2=zeros(256,1);
for i=1:w
for j=1:h
H2(imge3(i,j)+1)=H2(imge3(i,j)+1)+1;
end
end

x = reshape(imge2',1,w*h); % transfer fonksiyonu olusturmak...
y = reshape(imge3',1,w*h); % ...uzere matrixlerin vektore donusumu


figure;imshow(imge); %orjinal imge
figure;plot(H); %orjinal histogram
figure;imshow(uint8(imge3)); %karsitlik yayilmis imge
figure;plot(H2); %karsilik yayilmis imgenin histogrami
figure;plot(x,y); %Transfer fonksiyonunun çizdirilmesi






***




1 yorum: