OpenCV学习(一)opencv源码安装

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. 获取openCV源码文件和openCV-contrib扩展模块文件,文章安装了opencv-4.2.0和opencv-contrib-4.2.0文件.

我已将opencv-4.2.0和opencv-contrib-4.2.0文件上传到百度网盘,文末给出了下载方式 

3. 在文件opencv-4.2.0新建文件夹build,并设置该目录为当前目录

mkdir build

cd build

4. cmake配置工程的编译环境

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.2.0 -D  OPENCV_GENERATE_CONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.2.0 ..

CMAKE_INSTALL_PREFIX的含义 : 安装库的存放位置

OPENCV_GENERATE_PKGCONFIG: 存放opencv4.pc,该文件的内容是存放了工程所需要的头文件路径和依赖库路径,这个很重要,因为你不用手动的去添加所需要的头文件路径和依赖库路径,opencv4.pc内容如下图:

OpenCV学习(一)opencv源码安装

这个文件包含了工程的所有头文件路径和依赖库路径 OPENCV_EXTRA_MODULES_PATH的含义:添加扩展库的路径 ,这个扩展库包含了很多重要的库,需要添加到项目.

5. make编译

采用并行编译的方式,首先需要知道你的CPU核心数,

执行:  nproc  

小编电脑的CPU核心数为12,

执行:  make -j12

6. make安装

sudo make install

7. 配置环境变量

执行

sudo gedit /etc/ld.so.conf.d/opencv4.2.0.conf

末尾添加依赖库的路径:

/usr/local/opencv4.2.0/lib

保存退出并更新:

sudo ldconfig

8. 配置bash

执行

sudo gedit /etc/bash.bashrc

在末尾添加PKG_CONFIG_PATH的路径:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3.4.1/lib/pkgconfig PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv4.2.0/lib/pkgconfig   export PKG_CONFIG_PATH

更新

source /etc/bash.bashrc

sudo updatedb

9. 测试

如下图的test.cpp文件

OpenCV学习(一)opencv源码安装

执行命令,g++编译:

g++ -std=c++11 test.cpp `pkg-config --libs --cflags opencv4` -o result

运行程序 ./result

得到结果:

OpenCV学习(一)opencv源码安装

opencv4.2.0和opencv_contrib-4.2.0文件获取方法:

可扫下方二维码,并回复"opencv安装"即可获得:

OpenCV学习(一)opencv源码安装