为 python 安装带有额外模块(筛选、冲浪...)的 OpenCV 3.0
Install OpenCV 3.0 with extra modules (sift, surf...) for python
我尝试为 python 安装(很多次)OpenCV 3.0 和额外的包(筛选、冲浪...),但我总是失败,我真的被卡住了。
我在主环境中试过,然后在虚拟环境中试过,
这是我所做的:
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
无论我尝试以何种方式安装它,我总是得到:
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'
与:
import numpy as np
import cv2
sift = cv2.xfeatures2d.SIFT()
如果有人看出我哪里错了...
非常感谢
>>> 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
对于opencv3.0,你必须使用一个XXXX_create()
函数,来获取一个实例
所以,它是:
orb = cv2.ORB_create()
和:
sift = cv2.xfeatures2d.SIFT_create()
sift.detect(...)
sift.compute(...)
我尝试为 python 安装(很多次)OpenCV 3.0 和额外的包(筛选、冲浪...),但我总是失败,我真的被卡住了。 我在主环境中试过,然后在虚拟环境中试过,
这是我所做的:
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
无论我尝试以何种方式安装它,我总是得到:
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'
与:
import numpy as np
import cv2
sift = cv2.xfeatures2d.SIFT()
如果有人看出我哪里错了...
非常感谢
>>> 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
对于opencv3.0,你必须使用一个XXXX_create()
函数,来获取一个实例
所以,它是:
orb = cv2.ORB_create()
和:
sift = cv2.xfeatures2d.SIFT_create()
sift.detect(...)
sift.compute(...)