JavaCV Nedir?

Java geliştiricileri OpenCV kütüphanesi ile uygulama geliştirken özelliklede Andorid platformu üzerinde bu işi yaparken bir çok zorluklarla karşılaşıyor. Örnekler veya dokümanlardaki anlatımlar Python ve C++ ile yapılıyor bu durum Java geliştiricileri için can sıkıcı bir durum, özellikle bazı C++ fonksiyonlarının Java karşılığının olmaması işleri daha da zora sokuyor. Bu durumda imdadınıza JavaCV yetişiyor.

JavaCV Nedir?

JavaCV, JavaCPP kullanılarak geliştirilmiş bir OpenCV wrapperıdır. Wrappar’ın ne olduğuna daha önce burada değinmiştik fakat kısaca tekrardan özetlememiz gerekirse; geliştirilen kütüphanenin, geliştirildiği kaynak dil, teknoloji referans alınarak istenilen hedef dil veya teknolojiye aktarılması bu platformda çalıştırılabilir hale getirilmesi denilebilir. JavaCV de OpenCV referans alınarak geliştirilmiş fakat üzerine bir çok farklı kütüphaneler eklenerek genişletilmiş bir Java görüntü işleme kütüphanesidir. OpenCV den bağımsız değil, aksine paralel olarak aynı doğrultuda gelişim göstermektedir.  Geliştirilen bir çok metot sayesinde işleri kolaylaştırmakta ve geliştirme süresini kısaltmaktadır. Özellikle Android’in ivme kazanması ile kütüphaneye olan rağbet artmış ve bu platform için görüntü işlemeyi daha da kolay hale getirmek için ekstra modüller geliştirilmiştir. Örnek vermek gerekirse Geometric Calibrator, ProCam Color Calibrator, Canvas Frame,GLCanvas Frame, Parallel vb. olarak özetlenebilir. Kinect vb gibi donanımlar için geliştirilmiş sınıflar ile bu cihazlara yönelik uygulamalar kolaylıkla geliştirilebilir.

JavaCV mi? OpenCV mi ?

Öncelikle projenizde ikisini de birlikte kullanabileceğinizi hatırlatmak isterim. Bu iki kütüphanenin performansını açıkça ortaya koyan bir grafik bulamadım bu yüzden tecrübelerime dayanarak anlatmayı tercih ettim. JavaCV ile OpenCV yi karşılaştırmak oldukça zor çünkü ne için kullanacağınıza ve amacınıza göre bu sorunun cevabı değişebilir. Amacınız Android platformuna uygulama geliştirmek veya OpenCV’nin C++ örneklerini Java projelerine implemente etmek ise JavaCV’yi tercih edebilirsiniz. Geliştirdiğiniz projede hız ve performans istiyor, gerçek zamanlı işler ile uğraşıyorsanız OpenCV kütüphanesini tercih edebilirsiniz. Bu iki kütüphaneyi de keskin çizgilerle ayırmamak gerekiyor, aktarılan fonksiyonlar ve sınıflar çok fazla değiştirilmemiş üzerine eklemeler yapışmış durumdalar. Bu yüzden duruma göre iki kütüphaneyi de terci edebilirsiniz bir rakip, alternatif değil işinizi kolaylaştıran ara bir kütüphane olarak görebilirsiniz.

JavaCV Kurulumu

JavaCV kurulumu normal bir Java kütüphanesi kurmaktan çokta farklı değil. Projeyi buradaki Github bağlantısından indirebilir veya şuan ki en güncel sürümünü 1.2 yi binary olarak bu bağlantıdan indirebilirsiniz.

Sıkıştırılmış dosyayı çıkarttığınızda içerisinde bir çok jar dosyası göreceksiniz, projenize JavaCPP, JavaCV, OpenCV ve kullanmış olduğunuz işletim sisteminize uygun opencv jar dosyasını projenize ekleyin (x64 windows için  opencv-windows-x86_64.jar ). Buradaki bağlantıdan örnekleri indirip deneyebilirsiniz.