由于ubuntu14.04/16.04都自带了python2.7和python3.5,所以无需在安装python。
如果需要安装python3.6,则需要重新安装
由于ubuntu14.04/16.04都自带了python2.7和python3.5,所以无需在安装python。
1、检查python是否安装:
~ whereis python
2、首先需要的是 pip:
~ sudo apt-get install python3-setuptools python3-dev sudo easy_install3 pip
安装pip3
curl https://bootstrap.pypa.io/get-pip.py
3、然后是 numpy:
~ pip3 install numpy
4、安装依赖:
1)、~ sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
2)、sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2. 安装OpenCV3.3.1
(1)下载opencv和opencv_contrib,在刚才的终端中输入:
git clone https://github.com/opencv/opencv.git
去下载对应版本的opencv_contrib
会在home中发现有opencv和opencv_contrib两个文件夹,则下载成功
(2)用cmake配置属性(cpu版):
首先文件夹opencv新建一个build文件夹
cd ~/opencv
mkdir build
cd build #打开build文件夹
配置编译opencv
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D PYTHON3_EXECUTABLE=/usr/bin/python3 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=/data1/storage_proxy/deeplearning/dl_project/inceptionv3/data/opencv-3.1.0/opencv_contrib/modules -D BUILD_EXAMPLES=ON -D CMAKE_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/stubs -D CUDA_CUDA_LIBRARY=/usr/local/cuda-8.0/lib64/stubs/libcuda.so ..
该步成功,之后输入:
make -j7 # 7个任务并行,加快安装(亲测,如果输入的是make-j,电脑安装慢,还死机了,导致安装失败)
sudo make install
至此,安装完成
如想要查询安装的版本
输入:
python3
import cv2
cv2.__version__
可以得到:
**** 如果没有出现上面的结果,出现ImportError: No module named cv2 报错,
pip3 install opencv-python 可以解决这个问题
错误1:samples/gpu/CMakeFiles/example_gpu_hog.dir/build.make:122: recipe for target
这是因为编译的时候没有加入cuda-8.0路径
解决办法:cmake的时候加入-D CMAKE_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/stubs -D CUDA_CUDA_LIBRARY=/usr/local/cuda-8.0/lib64/stubs/libcuda.so ..
错误2:In file included from /home/avtomaton/arbeit/sdk/cxx/opencv/build/modules/python2/pyopencv_generated_include.h:11:0,
from /home/avtomaton/arbeit/sdk/cxx/opencv/modules/python/src2/cv2.cpp:12:
/home/avtomaton/arbeit/sdk/cxx/opencv_contrib/modules/hdf/include/opencv2/hdf/hdf5.hpp:40:18: fatal error: hdf5.h: No such file or directory
解决办法:into modules/python/common.cmake
# This file is included from a subdirectory
set(PYTHON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../")ocv_add_module(${MODULE_NAME} BINDINGS)
became
# This file is included from a subdirectory
set(PYTHON_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../")find_package(HDF5)
include_directories(${HDF5_INCLUDE_DIRS})ocv_add_module(${MODULE_NAME} BINDINGS)
python3.5中编译opencv可能会出现以下错误:
错误:在编译安装opencv3.1时可能会报错
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] Error
这是CUDA配置出错。
解决办法1:不用CUDA在cmake时设置-DWITH_CUDA=OFF
解决办法2:GraphCut在cuda7.5中弃用,在cuda8.0中被移除。
修改 ~/opencv-3.1.0/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:
opencv3.1+opencv_contrib编译,cmake时候遇到下面问题:
[plain] view plain copy
print?
CMake Error at /home/ubuntu/opencv3.1.0/opencv-3.1.0/cmake/OpenCVUtils.cmake:895 (file):
file DOWNLOAD cannot open file for write.
Call Stack (most recent call first):
/home/ubuntu/opencv3.1.0/opencv_contrib/modules/dnn_modern/CMakeLists.txt:20 (ocv_download)
CMake Error at /home/ubuntu/opencv3.1.0/opencv-3.1.0/cmake/OpenCVUtils.cmake:899 (message):
Failed to download . Status=
Call Stack (most recent call first):
/home/ubuntu/opencv3.1.0/opencv_contrib/modules/dnn_modern/CMakeLists.txt:20 (ocv_download)
-- Configuring incomplete, errors occurred!
See also "/home/ubuntu/opencv3.1.0/opencv-3.1.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/ubuntu/opencv3.1.0/opencv-3.1.0/build/CMakeFiles/CMakeError.log".
需要把
[plain] view plain copy
print?
同理,其他地方报错,继续如此替换即可!
参考链接:
1. Ubuntu16.04下安装OpenCV3.2.0 - Arkenstone - 博客园 http://www.cnblogs.com/arkenstone/p/6490017.html
2. OpenCV: Installation in Linux https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html