参照国外大神博客:Install OpenCV 3.0 and Python 2.7+ on Ubuntu
这里把主要代码直接贴上,具体每一步作用移步大神博客。
Step 1:
sudo apt-get update
sudo apt-get upgrade
Step 2:
sudo apt-get install build-essential cmake git pkg-config
Step 3:
sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev
Step 4:
sudo apt-get install libgtk2.0-dev
Step 5:
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
Step 6:
sudo apt-get install libatlas-base-dev gfortran
Step 7:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Step 9:
sudo apt-get install python2.7-dev
pip install numpy
Step 10:
cd ~
git clone https://github.com/Itseez/opencv.git
cd opencv
git checkout 3.0.0
cd ~
git clone https://github.com/Itseez/opencv_contrib.git
cd opencv_contrib
git checkout 3.0.0
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
make -j8
sudo make install
sudo ldconfig
python
>>> import cv2
>>> cv2.__version__
'3.0.0'
报错解决:
错误1:
error: ‘NppiGraphcutState’ has not been declared
…
modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/build.make:290: recipe for target ‘modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o’ failed
make[2]: *** [modules/cudalegacy/CMakeFiles/opencv_cudalegacy.dir/src/graphcuts.cpp.o] Er
原因: GraphCut 在cuda7.5中弃用,而且在cuda8.0中移除了。
解决办法:修改 ~/opencv/modules/cudalegacy/src/graphcuts.cpp文件
把第45行修改成:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
即在 #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 加上 || (CUDART_VERSION >= 8000)
错误2:
编译和安装一切正常后,进入python命令行,import cv报错 no module named cv2
解决方案:搜索cv2.so文件,将其copy至python目录下dist-packages文件夹下即可解决
(若搜索不到cv2.so文件,那就只好重新编译安装了。==、)
错误3:
ICV: Downloading ippicv_linux_20141027.tgz...
下载出错