2015-07-29 13 views
6

Próbuję zbudować OpenCV na moim komputerze z Windows 7. Aby dołączyć moduły contrib, dodam OPENCV_EXTRA_MODULES_PATH w CMake-gui. Tworzone są pliki opencv-300.jar i opencv-300.dll, ale nie mogę znaleźć klas Java, aby korzystać z dodatkowych modułów. Czy brakuje mi opcji w konfiguracji make? Czy w ogóle możliwe jest korzystanie z dodatkowych modułów Java?Buduj OpenCV z modułami contrib i opakowaniem Java

+0

Witam! Z powodzeniem buduję OpenCV z dodatkowymi modułami i stworzyłem plik Jar dla Javy, który testowałem, działał dobrze, ale nie widziałem żadnych nowych rzeczy w tym pliku Jar, mam na myśli to, gdzie jest kod contrib dla Javy, ten Jar plik jest prawie taki sam jak plik Jar, który pojawił się z plikiem do pobrania OpenCV. Jeśli rozumiesz mi to pytanie, proszę powiedz mi, że źle zrobiłem, gdy buduję plik Jar. Czy to jest tak? Dziękuję Ci bardzo. Uwaga: Zawarłem wszystko podczas tworzenia pliku JAR –

Odpowiedz

5

Mam ten sam problem i rozwiązałem się w ten sposób. Wyobrażam sobie, że pobrałeś z contrib repo konkretnej wersji gry z wersją opencv, jeśli chcesz ją zbudować. Przejdź do katalogu i wprowadź, na przykład, katalog modułu twarzy; w tym katalogu znajduje się plik o nazwie CMakeLists.txt, który musisz edytować. Plik ten powinien być tak:

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 

Jeśli chcesz mieć pakiet org.opencv.face w bibliotece OpenCV-3xx.jar trzeba zmodyfikować 2nd wiersz pliku w następujący sposób:

ocv_define_module(face opencv_core opencv_imgproc opencv_objdetect WRAP python java) 

Następnie trzeba skompilować OpenCV, jak to przedstawiono w Readme.md z repo contrib https://github.com/itseez/opencv_contrib

Oczywiście samo jest ważne dla wszystkich modułów contrib, jeśli chcesz dodać do OpenCV-3xx.jar biblioteka.

Mam nadzieję, że to rozwiązanie zadziała dla Ciebie, pa!

+0

Wow! Dziękuję za odpowiedź. Uratowałeś mi naprawdę dużo czasu! Jeśli chcesz zautomatyzować trochę rzeczy, możesz zmienić katalog na 'opencv_contrib/modules' za pomocą' cd opencv_contrib/modules' i 'grep -iR" WRAP python "'. Jeśli wydrukuje wszystkie wystąpienia 'Pythona WRAP'a', które chcesz zastąpić' WRAP python java', niż możesz uruchomić 'find. -name CMakeLists.txt -type f -print0 | xargs -0 sed -i 's/WRAP python/WRAP python java/g''. –

+0

Chcę użyć surfowania w module xfeatures2d. Próbowałem Twojego rozwiązania, ale dostałem błędy podczas robienia: opencv/build/src/org/opencv/xfeatures2d/DAISY.java: 48: Błąd: nie znaleziono sysmbol. jaki jest problem? – sify

+0

Witam, wystąpił problem polegający na tym, że wskaźniki niektórych obiektów wewnętrznych nie są obsługiwane. 'Zwracany typ 'Ptr_Dictionary' nie jest obsługiwany, pomijając funkcję'. Czy masz pojęcie, co należy zmienić po stronie modułu, aby dodać obsługę wrappera java? –

Powiązane problemy