在图像处理中,经常需要用到OpenCV,Ubuntu系统中装OpenCV编译过程中,报了很多错,最常见的就是这种
Makefile:160: recipe for target 'all' failed make: *** [all] Error
试了很多方法,都没有解决问题,后面看到有文章说是系统安装Anaconda,导致编译的时候某些组件用的不是系统自带的,而是anaconda的,只要注销掉anaconda的环境变量就行,注释掉以后重新make,就没有继续报错,这里记录下问题解决办法和安装OpenCV的方法
#编辑环境变量
sudo gedit ~/.bashrc
#使更改生效
source ~/.bashrc
#接着就可以正常编译安装OpenCV
官方安装教程:OpenCV' Installation example in Linux
安装必要的包
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
下载openc、opencv_contrib
cd ~/<my_working_directory>
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
创建build文件夹
cd ~/opencv
mkdir build
cd build
编译的选项,官方文档中有说明具体的选项含义,可以根据需要选择性的使用,如果安装了anaconda,编译前先注释掉anaconda的环境变量
cmake
-D WITH_IPP=OFF #是否要安装IPP
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local #编译的路径
-D BUILD_opencv_python3=ON #是否编译Python3的库
-D BUILD_opencv_python2=ON #是否编译Python2的库
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules .. #modules存放的路径
Description of some parameters
build type: CMAKE_BUILD_TYPE=Release\Debug
to build with modules from opencv_contrib set OPENCV_EXTRA_MODULES_PATH to <path to opencv_contrib/modules/>
set BUILD_DOCS for building documents
set BUILD_EXAMPLES to build all examples
[optional] Building python. Set the following python parameters:
PYTHON2(3)_EXECUTABLE = <path to python>
PYTHON_INCLUDE_DIR = /usr/include/python<version>
PYTHON_INCLUDE_DIR2 = /usr/include/x86_64-linux-gnu/python<version>
PYTHON_LIBRARY = /usr/lib/x86_64-linux-gnu/libpython<version>.so
PYTHON2(3)_NUMPY_INCLUDE_DIRS = /usr/lib/python<version>/dist- packages/numpy/core/include/
[optional] Building java.
Unset parameter: BUILD_SHARED_LIBS
It is useful also to unset BUILD_EXAMPLES, BUILD_TESTS, BUILD_PERF_TESTS - as they all will be statically linked with OpenCV and can take a lot of memory.
还有可选的安装流程、编译选项根据需求来就好
开始编译文件
make -j7 # runs 7 jobs in parallel
安装库文件
sudo make install
Python中验证安装是否完成:
import cv2
cv2.__version__
如果报错可以搜cv2.cpython-36m-x86_64-linux-gnu.so这个文件 然后复制到./lib/python3.6/site-packages库文件夹中