2015-05-03 19 views
6

Android'de opencv katkıda bulunan modülleri kullanmanın bir yolu var mı? Özellikle metin modülü kullanıyorum. Bu modüller için bir android lib var mı. Kodum masaüstünde çalışıyor ve kodlarımı android'e taşımaya çalışıyorum. Herhangi bir fikir gr8 olur.Android için OpenCv katkı modülleri kullanma

+2

Kendi OpenCV Android SDK'nızı '/platform/android/build_sdk.py' ile derlemeniz gerekecek. –

cevap

2

Bu sorunlara çözüm önerileri geliştiriyordum. Dışarıda konuyla ilgili bir soru bulacağımı ve başkalarının da buna benzer bir soruna çözüm araması durumunda topluluğa bir cevap verebileceğimi düşündüm. Derleme

sağlanan talimatlar biraz eksiktir. Bir Macbook Retina 13" üzerinde yapıldığını ve son bir ürüne ulaşmak için gerekli olacak ek adımlar vardır.

başladığında size gibi standart prosedürü takip edecek buna ek olarak çevrimiçi

$ cd <opecv_directory> 
$ mkdir build 
$ cd <opencv_build_directory> 
$ cmake -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory> 
$ make -j5 
$ make install 

özetlenen, bir hata ya da iki karşısında çalıştırabilir. Ben eksik ama bu sizin için farklı olabilir geçmiş şeyleri almak için bazı eksik bileşenleri yüklemek için gerekli (I hatalarından araştırılmış ve ek bileşenlere ihtiyacım olduğunu anladım)

brew install ninja 
brew install oxygen 
brew install ant 

Ben de bir modül kaynak kodunda belirtilen aşağıdaki ihtiyacını talebinde bir hata koştu (veya derleyici bayraklarıyla):

#define SOLARIS_64BIT_ENABLED 

Eğer diğer modülleri kaldırın yapabileceği başka bir şey Derleme sırasında ilginizi çekemeyeceğiniz katkı klasörü. Sadece istediğiniz modülleri ekleyin ve umarım bu olanlar iyidir. Bunu,/modules klasöründen bir veya iki tane kaldırarak yaptım ve sonra python betiğini yeniden yazdım.

Yapıyı çalıştırmak için son bir python komut dosyası gerekiyordu. Ana kaynak ağacının ve katkıda bulunan klasörün yanında bir dizin oluşturdum.

python ../opencv/platforms/android/build_sdk.py --extra_modules_path ../opencv_contrib/modules --ndk_path <your-path-to-ndk-top-level-folder> --sdk_path <your-path-to-sdk-top-level-folder> ./ ../opencv 

Bu yalnızca oluşturur:

OpenCVSource 
    -> opencv 
    -> opencv_contrib 
    -> android_opencv_build 

aşağıdaki I inşa arasında yapılacağını olmak istiyorum dizinden yapıldığı çağrı, bu yüzden dizine çağrı değiştirildi aşağıdaki oldu. Bu nedenle kütüphaneyi kullanmak için gerekli olan dosyalar, ancak .jar dosyasını yeni ikili dosyaları kullanmanız gerekecek şekilde oluşturmaz. Bunu yapmak için, derleme klasörünüze gidin (benimki benimki android_opencv_build/OpenCV-android-sdk içinde)

Varolan Android projesini çalışma alanına içe aktarma ile bu projeyi Eclipse içine standart biçimde yükleyin. Gerçekten sadece/sdk projesine ihtiyacınız var, ancak istenirse örnekleri de yükleyebilirsiniz. Sonra projeyi inşa et. Başarılı bir yapı için yeni Kamera API'lerini desteklemek için hedef oluşturmayı değiştirmeniz gerekebilir; Durumumda hedef 21 seviyesine getirildi.

.jar dosyasını projenin/bin dizininde bulacaksınız. .jar ve .so dosyaları android_opencv_build/OpenCV-android-sdk/sdk/native/jni/dizininde bulunur. Bu jar ile birlikte projelerinize/lib klasörüne eklemeniz gereken gerekli .so dosyalarını içerir.

Artık ihtiyacınız olan her şeye sahip olmalısınız. Katkıda bulunan modüller ile çalıştığımız için (ya da başka nedenlerle oluşturuyorsanız), oldukça kararlı olmayan ve biraz dikkat gerektiren yapı sürecindeki diğer hatalarla karşılaşabilirsiniz.Bu yardım edilemez, ancak insanlar çözüm bulduklarında onları çözümlemek için diğer halkların çözümlerine yorum eklemek için kendilerini özgür hissedebilirler.

+0

Tüm katkı modüllerinin gerçekte bir java karşılığı oluşturmadığını belirtmek gerekir. Örneğin, Aruco modülleri ile çalışırken, onlar için java sınıfları yoktur. Kaynak koduna jni sarmalayıcıları oluşturmanız ve C++ kütüphanesi çağrılarını kullanmanız gerekecektir. .jar ve .so, Android projenizden onlara erişimi etkinleştirir. –

0

Bazı çalışmalardan sonra, Ekstra modüller ile opencv'i oluşturmak için oldukça iyi bir açıklanabilir nesnelere rastladım. Aynı için bağlantı onlar benim repo kullanmak için özgür hissedebilirsiniz,

Ve bazı biri Contrib ekstra modüllerle zaten inşa opencv ustası kullanmak istediği durumda here olduğu aynı için bağlantı this Bu makale Sadece macda aynı şeyi takip edemediğim için sadece pencereler üzerinde çalışır.