1) Görüntü İşleme
2) Yapay Zeka
3) Bilgi Çıkarımı olarak oluşturulabilir.
Resimler üzerinde yapılan değişiklikler, resmi algılamayı kolaylaştırır. Bundan dolayı farklı görüntü işleme fonksiyonları mevcuttur. Bunlardan En ünlüsü ThresHold denilebilr. Bizde bu fonksiyonların mantığının kavranabilmesi için basit bir örnek yazdık. Aşağıdaki örneği derleyin ve inceleyin.
---> Örnek Kod
Buradaki Program algoritma ve servis fonsksiyonlarından oluşmakta. Algoritma fonksiyonları çeşitli matematiksel fonksiyonlarla yazıldı. Çok ilginçtir ki hayatımızda hep sayıların karekökünü alırdık; şimdi ise resmin karekökünü alıyor olacağız. Aslında yine sayılarla çalışıyoruz ama resmin kökünü alıyoruz işte : ).
->IplImage* basicThreshold(IplImage *paramImg)
Bu fonksiyonun ana mantığı herhangi bir değer aralığındaki tüm piksellere belirli renkerin atanmasıdır. Örneğin 8 bitlik bir resimde her kanal için renk değerleri 0 ile 255 (2^8) arasında olacaktır.
Burada yapılan olay 85 değerinden küçük pikseller için 85 eşik değeri, 85 ve 170 arasındakiler için 170 değeri, 170 den büyükler için ise 25 eşik değerinin atanması şekilde gerçekleştirilmiştir.
Zaten asıl Threshold fonksiyonun mantığı da bu şekilde işlemektedir. ThresHold ile ilgili daha ayrıntılı bilgi için : Threshold adresibe bakabilirsiniz.
Programımızda yazdığımız diğer fonksiyon ise:
->IplImage* reverse(IplImage* paramImg) ;
Bilindiği üzere '0' siyahı yani en mat rengi, '255' ise en parlak rengi ihtiva eder. Eğer 255 sayısından 255 ile 0 arasında bir sayı çıkarılırsa ters rengini bulmuş olur. Windows Paint programının bu işlevi çok harikulade bir şey değil yani :).
Diğer bir fonskiyon ise bahsetmiş olduğumuz karekök olayıdır.
-> IplImage* darken(IplImage* paramImg)
Eğer bir piksel değerinden kendinin karekökünü çıkarırsak resim kararır. Burada sonuc sayıların değerlerinin 255 i aşması imkansız olduğundan mod(255) kullanmamıza gerek kalmaz. Bu fonksiyonun etkisi aşağıda Microsoft Math 2007 ile çizdik.İncelemenizi tavsiye ederiz:

Mavi grafik:
f(x) = x-sqrt(x)
fonskiyonu diğer fonskiyon ise normal değerli fonskiyon. Piksel değerleri de bu şekilde bir değişime uğrar.
Diğer bir fonksiyon ise :
->IplImage* lighten(IplImage* paramImg);
Burada er piksel değerine, o pikselin karekökünün 15 katını atadık. Dolayısile sayılaar kendilerine özgü bir şekilde 255 sayısına yani en parlak renge yaklaştı. Bu durumda resim açılmış oldu. Yine aşağıda grafiksel incelemesi mevcut:

Yan tarafta 4 tane grafik çizilidir. Mavi renkli olan bizim fonksiyonumuzdur. yani f(x) = 15 * sqrt(x) olan. Burada 10 , 5 katsayılarını da çizdik. Grafikten de anlaşılacağı gibi katsayı azaldıkça parlak renklere yakınsama hızı da azalıyor. Örneğin kırmızı renkli grafikle siyah renkli grafik 25 değerine yakın bir notada kesişiyor. Sağ tarafta kalan renk değerleri parlaklaşır sol taraftakiler ise daha koyulaşır mesela. Sizde istediğiniz gibi katsayılarla oynayarak farklı sonuçlar elde edebilirsiniz.
**********************************************************
Unutmadan naçizane söyleyeyim ki; görüldüğü üzere matemetik tüm mühendislik disiplinlerinde mihenk taşıdır. Olmazsa olmaz. Ondan dolayı matematik ve ileri matematik derslerimizi daha iyileştirmemiz gerekecek. örneğin opencv' nin ileride bir çok algoritmik fonksiyonlarını inceleyeceğiz, mesela kullandığımız cvCanny() yordamında DCT(Kesikli Sinüs Dönüşümü) uygulanmakta. Bilgisayar Bilimleri ile uğraşacak arkadaşlara çağrı: MATEMATİK :)

0 yorum:
Yorum Gönder