2015-01-17 14 views
6

Ho provato ad installare (molte volte) OpenCV 3.0 per Python con pacchetto extra (setaccia, naviga ...) ma ho sempre fallito, davvero bloccarsi. Ho provato in un ambiente principale poi in quelli virtuali,Installa OpenCV 3.0 con moduli aggiuntivi (setaccia, naviga ...) per python

Ecco quello che ho fatto:

cd git 
git clone https://github.com/Itseez/opencv_contrib.git 
cd .. 
wget https://github.com/Itseez/opencv/archive/3.0.0-beta.zip 
unzip 3.0.0-beta.zip 
cd opencv-3.0.0-beta/ 
mkdir release 
cd release/ 
workon OCR 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/jbd/src/opencv-3.0.0b -D OPENCV_EXTRA_MODULES_PATH=/home/jbd/git/opencv_contrib/modules -D BUILD_opencv_python3=ON -D PYTHON2_EXECUTABLE=/home/jbd/.virtualenv/OCR/bin/python -D PYTHON_INCLUDE_DIR=/home/jbd/.virtualenv/OCR/include/python2.7 -D PYTHON_LIBRARY=/usr/lib/libpython2.7.so -D PYTHON2_NUMPY_INCLUDE_DIRS=/home/jbd/.virtualenv/OCR/local/lib/python2.7/site-packages/numpy .. 
make -j7 
make install 
cd ~/.virtualenv/OCR/lib/python2.7/site-packages/ 
ln -s /home/jbd/src/opencv-3.0.0b/lib/python2.7/site-packages/cv2.so 

Qualunque sia il modo in cui provo a installarlo, ho sempre arrivare:

Traceback (most recent call last): File "/home/jbd/git/ocr/test.py", line 10, in sift = cv2.xfeatures2d.SIFT() AttributeError: 'module' object has no attribute 'SIFT'

con:

import numpy as np 
import cv2 
sift = cv2.xfeatures2d.SIFT() 

Se qualcuno vedere dove ho sbagliato ...

Grazie mille

risposta

9
>>> help(cv2.xfeatures2d) 
Help on module cv2.xfeatures2d in cv2: 

NAME 
    cv2.xfeatures2d 

FILE 
    (built-in) 

FUNCTIONS 
    SIFT_create(...) 
     SIFT_create([,nfeatures[,nOctaveLayers[,contrastThreshold[,edgeThreshold[,sigma]]]]) -> retval 

    SURF_create(...) 
     SURF_create([,hessianThreshold[,nOctaves[,nOctaveLayers[,extended[,upright]]]]]) -> retval 

con opencv3.0, è necessario utilizzare una funzione XXXX_create(), per ottenere un'istanza quindi, è:

orb = cv2.ORB_create() 

e:

sift = cv2.xfeatures2d.SIFT_create() 
sift.detect(...) 
sift.compute(...) 
+0

Grazie mille, l'ho perso e la mia installazione è stata finalmente buono :) – jbdemonte