OpenCV 2.3 ile Optical Flow C++

  Optical flow yöntemi, hareket kestirimi, nesne takibi, video stabilizasyonu(titreşim,hareket giderme), imge mozaikleme, stereo vision ile derinlik bilgisi eldesi gibi operasyonlarda sıklıkla kullanılan temel bir araçtır. Genel olarak Optical flow yöntemi bir resimdeki noktanın diğer bir resimde nereye gittiğini bulmaktadır. Burada OpenCV nin sağladığı fonksiyonlarla Lucas Kanade optical flow örneği bulunmakta. OpenCV  kütüphanesinin C dili arayüzlerini kullnıarak geliştirilen bu uygulamayı  C++ a çevirdim.


Devamını oku...>>

OpenCV 2.2 Windows .lib dosyaları?

     OpenCV nin 2.2 versiyonu geçtiğimiz yılın Aralık ayında yayınlandı. 2.3 versiyonunun ise planlanan sürüm tarihi Mayıs 2011 olarak belirtilmiş.  Versiyon 2.2 de neler değişmiş burada. Bu listede ilk gözümüze çarpan kütüphanenin organizasyonunun bir hayli değişmiş olması. Eski versiyonlardan aşina olduğumuz cxcore, cv, cvaux, highgui ve ml modülleri daha küçük parçalara bölünmüş halde karşımıza çıkıyor. Bu değişiklikler kodlarımızda kullanmaya alıştığımız opencv header dosyalarının adının değişmesine neden olmuş. Ayrıca lib ve dll dosyalarıda artık opencv ön ekiyle başlıyor. Bu versiyonun  android için de built edilebileceği resmi olarak belirtilmiş. Kütüphanenin C++ desteği de bir hayli gelişmiş. 

  OpenCV kütüphanesinin 2.2 versiyonunu Visual Studio ortamında kullanmak istiyorsanız, kütüphanin kodlarını indirdikten sonra CMake ile Visual Studio proje dosyası oluşturup bu projeyi derleyerek dll ve lib dosyalarını oluşturmanız gerekiyor.  buradan windows versiyonunu indirebilirsiniz. Bu pakette kütüphanenin kodları, değişik dillerde örnek programlar ve bin klasörü içerisinde derlenmiş kütüphane dosyaları bulunuyor. Kütüphanenin kodlarıyla ve örnek programlarla ilgilenmeyecekseniz, OpenCV kullanan herhangi bir programı derlemek için minumum gereksinimleri  aşağıdaki linkten indirebilirsiniz.


     Aşağıda OpenCV v2.2 nin c++ arayüzü ile yazılmış temel bir test programı veriyorum. Aynı cv::Mat objesine döngü içinde jpeg dosyadan okuma yapılmasına rağmen C++' ın güzelliklerinden faydalanılarak  memory leak oluşmadığına dikkat ediniz. 

Devamını oku...>>

vs.Pratik.Sözlük çıktı!


       Önceleri sözlük karıştırıp  kelimeyi bulmak zor gelirdi sonra bir kelimeye bakmak için her seferinde sözlük sitelerini açıp bakmak zor gelmeye başladı. Bunun için hafta sonu kendime  ufak bir program  hazırladım. Belki sizler için de faydalı olur. 

  • vs.Pratik.Sözlük, bilgisayarınızda çalışırken sözlük ihtiyacınızı pratik şekilde çözmeye yönelik olarak tasarlanmıştır. 
  • vs.Pratik.Sözlük ile size vakit kaybettirecek, web tabanlı sözlük hizmetlerine veya karmaşık sözlük programlarına ihtiyacınız kalmayacak.
  • vs.Pratik.Sözlük Google Translate altyapısını kullandığından bu hizmetin sunduğu pek çok dil arasında çevirme olanak sağlamaktadır.
  • vs.Pratik.Sözlük'ü sadece internet bağlantınız olması durumunda kullanabilirsiniz. vs.Pratik.Sözlük varsayılan kurulumla, İngilizce bir kelime girdiğinizde Türkçeye, Türkçe bir kelime girdiğinizde ise İngilizce'ye çevirmek üzere ayarlanmıştır.
  • Herhangi bir kelimenin veya cümlenin karşılığını bulmak istediğinizde, sistem çubuğunuzda çalışmakta olan vs.Pratik.Sözlük'ü iki kez ardarda ctrl tuşuna basarak aktif hale getirebilirsiniz. Kelimeyi veya cümleyi girdikten sonra enter tuşuna basmanızın hemen ardından çevrim sonucunu alacaksınız. Çalışmanıza geri dönemek için tekrardan CTRL tuşuna ardarda basın. (Yani hiç mouse kullanmadan çevrim yapabiliyoruz)
  • -vs.Pratik.Sözlük'ü kullanmaya başlamadan önce bir kereye mahsus olmak üzere google hesabınızla, "http://code.google.com/apis/console"  adresinden google translate api key adındaki şifreyi almanız gerekmektedir. Bu şifre ücretsiz olup vs.Pratik.Sözlük'ün google translate altyapısını kullanması için gereklidir. Aldığınız şifreyi ayarlar menüsü altından kaydettikten sonra vs.Pratik.Sözlük'ü kullanmaya başlayabilirsiniz. 
*vs.Pratik.Sözlük ile alakalı isteklerinizi, sorunlarınızı veya önerilerinizi bu yazı altına yorum olarak veya  "volkansalma@yahoo.com" adresine doğrudan e-posta ile iletebilirsiniz.

Devamını oku...>>

Naive Bayes Sınıflandırıcı. C++

    Naive Bayes sınıflandırıcı, Bayes karar teorisine dayanan basit bir olasılıksal sınıflandırıcıdır. Çok fazla teorik bilgiye girmeden, wikipedia üzerinde bayes sınıflandırcının anlatıldığı sayfada yer alan bir örnek için yazdığım uygulamayı paylaşmak istiyorum.Örnek başlığı Sex Classification olarak geçiyor.
    Elimizde 4 erkek, 4 bayana ait veriler var. Bu verilerden her birinin bayana mı ait yoksa erkeğe mi ait olduğunu biliyoruz. Amacımız bu verileri kullanarak bir sınıflandırıcı tasarlamak. Bu sınıflandırıcıyı kullanarak  kime ait olduğunu bilmediğimiz verilerin sahibinin cinsiyetini doğru olarak tahmin edebileceğiz.

Devamını oku...>>

Zeki Optimizasyon Teknikleri - 3 (Genetik Algoritma)

   Zeki Optimizasyon Teknikleri yazı dizimizin en son konusu olan Genetik Algoritma, diğer algoritmaların iyi yönlerini birleştiren modern ve etkili bir optimizasyon tekniğidir. Probleme göre en başarılı optimizasyon yöntemi değişmekle beraber Genetik algoritma günümüzde hemen her tür probleme başarı ile uygulanmaktadır. Hill Climbing gibi popülasyon tabanlı bir algoritmadır. Algoritmanın en önemli kısmı üretilen çözümü değerlendiren, fitness function olarak bilinen kısımdır.


Devamını oku...>>