OpenCV Wrappers

OpenCV Wrappers

Wrapper Türkçe kelime anlamı olarak sarıcı, sarmalayıcı manasına gelmektedir. Ticari yada açık kaynak olarak  geliştirilen, OpenCV kütüphanesini referans alan ve bu kütüphane içerisindeki fonksiyonları kullanarak kendi fonksiyonlarını geliştiren ve farklı platformlarla kullanılabilir hala getiren yazılım kütüphaneleri diyebilirz. Bildiğiniz üzere OpenCV açık kaynak kodlu bir yapıdadır ve tüm programlama dillerine doğrudan bir destek vermemektedir. Bu programlama dillerinden başlıcaları C#, Visaul Basic .Net, F# Ruby vb. dir. Doğrudan desteği olan programlama dilleri için de yazılmış wrapper’lar mevcuttur. Temel yazılış amaçları desteği olmayan programlama dilleri içinde bu kütüphaneyi kullanılabilir hale getirmek, olan fonksiyonları belirli bir platformda daha iyi çalışabilecek hale getirmek amacıyla optimize etmek veya bu kütüphanenin kullanımı kolaylaştırarak sadece belirli bir amaç için özelleştirmekdir. Bu kütüphanelerede değinmekte fayda olduğunu düşünüyorum ve yazılmış bazı wrapper’lara göz atalım.

  • EmguCV: Bu wrapper .Net framework çatısı altında bulunan C #, VB, VC++, Xamarin veya IronPython ve Unity ile görüntü işleme uygulamaları geliştirmeyi kolaylaştırmaktadır. Windows, Linux, Mac OS X, iOS, Android ve Windows Phone platformlarında çalışabilmektedir. Güncelliğini devam ettiren bir kütüphanedir ve farklı lisanslamalara sahipir. Resmi internet sitesi http://emgu.com . Daha detaylı bilgi için ise https://mesutpiskin.com/blog/emgu-cv.html yazısına göz atabilirsiniz.
  • JavaCV: Java teknolojisi çatısı altında kullanmak için geliştirilmiş bir wrapper’dır. OpeCV kütüphanelerini referans alır ve java içerisinde C++ yazımında (syntax) uygulama geliştirmeyi destekler. Sıklıkla kullanılan bir çok algoritmayı kullanılabilirlik açısından kolaylaştırmışlardır. Sadece OpenCV değil FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, ARToolKitPlus, ve  flandmark gibi kütüphaneleride kullanmaktadır. Bytedeco tarafından açık kaynak kod olarak geliştirilmektedir ve güncelliğini devam ettiren bir kütüphanedir topluluk desteği bulunmaktadır. https://github.com/bytedeco/javacv adresi üzerinden ulaşılabilir durumdadır. Daha detaylı bilgi için JavaCV Nedir https://mesutpiskin.com/blog/javacv-nedir.html yazıma göz atabilirsiniz.
  • Opencvsharp: .Net framework için yazılmış bir başka kütüphanedir. .Net dilleri için görüntü işleme yazılımları geliştirebilmeyi amaçlamaktadır. EmguCV’den farklı olarak açık kaynak kodlu olduğu için eksra bir lisans maliyeti yoktur. .Net framework 2.0 ve üzeri ile geliştirilen projeler için kullanılabilir, mono desteği ile Linux ve MacOS gibi platformlar için de uygulama geliştirilebilir. Shimat tarafından geliştirilmektedir ve güncelliğini sürdüren bir kütüphanedir https://github.com/shimat/opencvsharp adresi üzerinden ulaşılabilir durumdadır.
  • EHE-LAB OpenCV Wrapper: Labview için geliştirilmiş bir OpenCV wrapper’dır. OpenCV 2.4.9 sürümü referans alınarak geliştirilmiştir. Ticari bir üründür ve 150$ gibi bir lisans ücreti bulunmaktadır. Windows platformunda çalışmaktadır. Ehe lab tarafondan geliştirilmektedir, çok fazla dokümanı olmamakla birlikte demo sürümünü ücretsiz olarak indirip  Resmi websitesi https://www.ehe-lab.com adresidir.
  • Ruby-opencv: Ruby için geliştirilmiş bir wrapper’dır. Açık kaynak kodlu yürütülen bir projedir. OpenCV 2.4.10 sürümü referans alınarak geliştirilmiştir ve Ruby 1.9.3, 2.x desteklemektedir. Linux, MacOS ve Windows platformu için kullanılabilmektedir. Topluluk desteği ile geliştirilmektedir, https://github.com/ruby-opencv/ruby-opencv adresinden ulaşılabilir durumdadır.
  • Live CV: QML ile kolay bir şekilde OpenCV kütüphanesi ile uygulamalar geliştirmenizi sağlayan bir wrapper. Daha detaylı için https://mesutpiskin.com/blog/live-cv.html yazısına göz atabilirsiniz.