2015-01-17 14 views
6

Próbowałem zainstalować (wiele razy) OpenCV 3.0 dla Pythona z dodatkowym pakietem (przesiać, surfować ...) ale zawsze zawodzę, naprawdę utknąć. Próbowałem w głównym środowisku następnie w tych wirtualnychZainstaluj OpenCV 3.0 z dodatkowymi modułami (przesiać, surfować ...) dla python

Oto co zrobiłem:

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 

Bez względu na sposób próbuję go zainstalować, zawsze otrzymujemy:

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'

z:

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

Jeśli ktoś zobaczy, gdzie się mylę ...

Thanks a lot

Odpowiedz

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 

z opencv3.0, trzeba użyć XXXX_create() funkcję, aby uzyskać instancję tak, to:

orb = cv2.ORB_create() 

oraz:

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

Wielkie dzięki, tęskniłem za tym, a moja instalacja była wreszcie dobrze :) – jbdemonte