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

entrez la description de l'image ici


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

Author: Community, 2016-05-29

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"

 1
Author: Cristina HG, 2017-05-23 12:02:54