Les algorithmes SURF et SIFT ne fonctionnent pas dans Open CV 3.0 Java
Je fusionne opencv et opencv-contrib à partir du dépôt github
Mon système d'exploitation est Windows 8.1
Procéder comme suit:
1.Télécharger Dépôt Github.
opencv (Itseez/opencv)
opencv_contrib (Itseez/opencv_contrib)
D:\opencv_merge\opencv-master
D:\opencv_merge\opencv_contrib-master
2. Téléchargez et installez la dernière version de CMake (la version actuelle est 3.5.2)
3. CMake Générer
(1)
Open CMake GUI
setting path
source code: D:\opencv_merge\opencv-master
build the binaries: D:\opencv_merge\opencv-master\build
(2)
press 'Configure'
wait for 'Configuring done'
watch output
---------------------
OpenCV modules:
To be built: core flann hdf imgproc ml photo reg surface_matching video dnn fuzzy imgcodecs shape videoio highgui objdetect plot superres ts xobjdetect xphoto bgsegm bioinspired dpm face features2d line_descriptor saliency text calib3d ccalib datasets rgbd stereo structured_light tracking videostab xfeatures2d ximgproc aruco java optflow stitching matlab python2
Disabled: world contrib_world
Disabled by dependency: -
Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev python3 viz cvv sfm
Java:
ant: C:/apache-ant-1.9.7/bin/ant.bat (ver 1.9.7)
JNI: C:/Program Files/Java/jdk1.8.0_91/include C:/Program Files/Java/jdk1.8.0_91/include/win32 C:/Program Files/Java/jdk1.8.0_91/include
Java wrappers: YES
Java tests: YES
(3) définir OPENCV_EXTRA_MODULES_PATH
D:/opencv_merge/opencv_contrib-master/modules
press 'Configure'
watch output double check again
(4) Générer
4. ouvrez OpenCV.la sln
Dans 'Solution Explorer' CMakeTargets-->Install -->Right Click -->Build
5. obtenez opencv-310.jar et opencv_java310.dll
(D:\opencv_merge\opencv-master\build\install\java)
6. Réglage Netbeans
(1) add Opencv Library (add opencv-310.jar to Library)
(2) VM options: -Djava.library.path=D:\opencv_merge\opencv-master\build\install\java
7. Exécuter le projet
8. écrire du code:
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
.....
FeatureDetector orbDetector = FeatureDetector.create(FeatureDetector.ORB);
.....
FeatureDetector siftDetector = FeatureDetector.create(FeatureDetector.SIFT);
.....
FeatureDetector surfDetector = FeatureDetector.create(FeatureDetector.SURF);
}
9. exécuter le projet et tester
ORBE détecteur peut être exécuté (bien sûr)
Mais le détecteur de TAMISAGE et de SURF ne peut pas
Je fais une petite modification après avoir vu cette solution: (Les algorithmes de SURF et de SIFT ne fonctionnent pas dans OpenCV 3.0 Java)
Je modifie {[7] } selon ce qui précède URL puis commence la deuxième étape.
Cependant, dans la cinquième étape " opencv_java310.dll ' ne se trouve pas dans le dossier java (D:\opencv_merge\opencv-master\build\install\java
)
J'essaie les mêmes étapes répétées au moins 5 fois mais toujours pas 'opencv_java310.dll '
La raison semble être que j'ai changé manuellement le 'features2d_manual.php'
Je suis sorti toute la journée: (
Qui peut m'aider à résoudre ce problème
Merci les gars
1 answers
Devinez que votre problème est que vous devez recompiler après avoir modifié manuellement features2d_manual.hpp
. Ce qui a fonctionné pour moi.
Vous pouvez voir ma réponse dans "Les algorithmes SURF et SIFT ne fonctionnent pas dans OpenCV 3.0 Java"