2015-07-29 13 views
6

Cerco di creare OpenCV sul mio computer Windows 7. Per includere i moduli contrib, aggiungo OPENCV_EXTRA_MODULES_PATH in CMake-gui. Opencv-300.jar e opencv-300.dll vengono creati ma non riesco a trovare le classi Java per utilizzare i moduli aggiuntivi. Mi manca un'opzione nella configurazione della marca? È possibile utilizzare i moduli aggiuntivi da Java?Costruire OpenCV con moduli contrib e wrapper Java

+0

Ciao! Sto costruendo con successo l'OpenCV con moduli aggiuntivi e ho creato il file Jar per Java, che ho provato funzionava bene, ma non ho visto nulla di nuovo in questo file Jar, voglio dire che dove il codice contrib per Java, questo Jar il file è quasi lo stesso del file Jar fornito con il file di download OpenCV. Se mi capisci la domanda, per favore dimmi che ho sbagliato in alcuni casi nella costruzione di file Jar o è così? Grazie mille. Nota: ho incluso tutto mentre build il file Jar –

risposta

5

ho lo stesso problema e ho risolto in questo modo. Immagino che tu abbia scaricato da contrib repo la versione specifica corrispondente alla versione opencv se vuoi costruire. Quindi vai nella directory e inserisci, ad esempio, la directory del modulo face; in questa directory c'è un file chiamato CMakeLists.txt che devi modificare. Questo file dovrebbe essere simile a questo:

set(the_description "Face recognition etc") 
ocv_define_module(face opencv_core opencv_imgproc opencv_objdetect WRAP python) 
# NOTE: objdetect module is needed for one of the samples 

Se si desidera avere il pacchetto org.opencv.face nella libreria OpenCV-3xx.jar è necessario modificare la seconda riga del file in questo modo:

ocv_define_module(face opencv_core opencv_imgproc opencv_objdetect WRAP python java) 

poi si deve compilare OpenCV come illustrato nella Readme.md del repo contrib https://github.com/itseez/opencv_contrib

Ovviamente la stessa cosa vale per tutti i moduli contrib se si desidera aggiungere alla vostra OpenCV-3xx.jar biblioteca.

Spero che questa soluzione funzioni per voi, ciao!

+0

Wow! Grazie per la risposta. Mi hai salvato davvero tanto tempo! Se vuoi automatizzare un po 'le cose puoi cambiare la directory in 'opencv_contrib/modules' con' cd opencv_contrib/modules' e 'grep -iR" WRAP python "'. Se stampa tutte le occorrenze di 'WRAP python' che vuoi sostituire con' WRAP python java' di quanto tu possa eseguire 'find. -name CMakeLists.txt -type f -print0 | xargs -0 sed -i/WRAP python/WRAP python java/g''. –

+0

Voglio usare surf nel modulo xfeatures2d. Ho provato la tua soluzione ma ho ottenuto degli errori durante la creazione di: opencv/build/src/org/opencv/xfeatures2d/DAISY.java: 48: Errore: sysmbol non trovato. qual è il problema? – sify

+0

Ciao, ho avuto un problema che i puntatori ad alcuni oggetti interni non sono supportati. 'Tipo di restituzione 'Ptr_Dictionary' non è supportato, saltando la funzione'. Hai un'idea di cosa deve essere cambiato sul lato modulo per aggiungere supporto per java wrapper? –