【非常感谢: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最终的是