1、下载opencv3.1.0.zip
https://opencv.org/releases.html
2、上传解压zip文件
3. 进入源码目录,创建release目录
cd opencv-3.1.0
mkdir release
4、安装依赖包
依赖包说明
- GCC 4.4.x or later
- CMake 2.6 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
依赖包命令
The packages can be installed using a terminal and the following commands or by using Synaptic Manager:
[compiler] sudo apt-get install build-essential # 后面选择的时候选择Yes [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
其中下载libjasper-dev会报错,以下是解决方法。
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
5. 进入release目录
安装OpenCV时,所有的文件都会被放到这个release目录下
cd release
6. cmake编译OpenCV源码
安装所有的lib文件都会被安装到/usr/local/opencv2.4.10目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
编译之后如果报错:/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory,以下是解决方法:
原因分析:
这是由于gcc7已经吧stdlib.h纳入了libstdc++以进行更好的优化,C Library的头文件stdlib.h使用 Include_next,而include_next对gcc系统头文件路径很敏感。
推荐的修复方法是不要把include路径作为系统目录,而是使用标准方式包含include 目录
解决方法:
在编译opecv-3.1.0时,加入如下选项:
-DENABLE_PRECOMPILED_HEADERS=OFF
7.安装
-
make -j4
-
sudo make install -j4
j4代表4个进程一起
8,测试代码:
如果要链接库,opencv的库在/usr/local/lib,
void openPicture(){
Mat myMat= imread("test.jpeg",0);
imshow("window",myMat);
}