ubuntu16041,安装opencv3.1.0

【非常感谢:http://www.linuxdiyf.com/linux/18482.html】

1、依赖关系:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2、下载源码:

a.可以从opencv官网直接下载:http://opencv.org/downloads.html

b.也可以从github上clone:

cd ~/<my_working_directory>  //比如工作目录为opencv即,cd ~/opencv
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git

3、编译(CMake Opencv源码):

建立一个编译目录(例如:/build)把cmake后的文件都放在这里边。

cd ~/opencv
mkdir build  //建立一个build目录,把cmake的文件都放着里边
cd build   //进入build目录

然后开始cmake,这里需要注意几个cmake的参数,比较重要。

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<path to opencv_contrib/modules/> ..

我的:cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/ubuntu16041/ruanjian/opencv_contrib/modules/ ..】

注:命令中最后的"  .. "(空格+两个点)千万不要忘记

其中 CMAKE_BUILD_TYPE=Release / Debug

OPENCV_EXTRA_MODULES_PATH 就是用来指定要编译的扩展模块,后边加上刚下载的opencv_contrib模块的路径即可。

这里官方文档上还给出了其他一些参数,但是我没用过,这里就不再描述了。有需要的可以查看http://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html

4、把代码编译成可执行文件,这里官方推荐使用多进程编译,推荐七个进程:

make -j7 # 并行运行七个jobs,这一步也在build目录中进行


5、安装。

sudo make install


6、运行测试。

我是用python+opencv的,我这里直接运行opencv自带的python的例子程序

cd <opencv3.1.0_dir>/samples/python/
python asift.py

7、报错及解决:

(1)测试的时候不通过,显示:

加入环境变量:sudo gedit ~/.bashrc

export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

(2)

报错:

ubuntu16041@ubuntu16041:~/ruanjian/opencv/samples/python$ python asift.py
Traceback (most recent call last):
File "asift.py", line 26, in <module>
import cv2
ImportError: /home/ubuntu16041/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/lib/python2.7/site-packages/cv2.so)


解决:在终端直接输入命令: conda install libgcc

(3)查看opencv的版本:

(40最终的是

原文地址:https://www.cnblogs.com/beihaidao/p/6127360.html