Ubuntu18.04下安装OpenCV4.2.0与Opencv_contrib(图文详细)
- 前期准备—环境依赖
- Cmake(编译器)
- 依赖环境
- Python环境
- streamer环境
- 图像处理依赖
- 安装OpenCV
- 编译OpenCV
- 配置cmake编译参数
- make编译
- 配置OpenCV动态库
- 验证OpenCV环境
- # python环境下OpenCV环境验证:
- 安装Opencv_contrib
- 下载opencv_contrib
- 配置编译项
- 出现的问题
- 一、ippicv下载问题
- 下载ippicv_2019_lnx_intel64_general_20180723.tgz
- 修改opencv相关配置文件
- 二、boostdesc和vgg_generated文件下载较慢的问题
- make安装(Opencv_contrib)
- OpenCV代码测试
- 调用摄像头
前期准备—环境依赖
Cmake(编译器)
具体安装细节可以参考之前写的一篇《Ubuntu下安装Cmake(编译)》
依赖环境
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
具体为以下环境依赖
build-essential
libgtk2.0-dev
libgtk-3-dev
libavcodec-dev
libavformat-dev
libjpeg-dev
libswscale-dev
libtiff5-dev
Python环境
注意OpenCV4.2.0需要Python3.x的环境
sudo apt install python3-dev
此外还需要Numpy函数库
sudo apt install python3-numpy
streamer环境
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
图像处理依赖
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev
PS:对于显示图像imshow(),正常显示几秒后报错:
Gtk-Message: 11:37:50.847: Failed to load module “canberra-gtk-module”
问题为缺少库,执行命令安装即可:
sudo apt-get install libcanberra-gtk-module
安装OpenCV
在OpenCV官网(https://opencv.org/releases/)找到OpenCV 4.2.0版本,下载Sources源码
也可以在OpenCV的GitHub中下载:
编译OpenCV
下载完成后解压进入OpenCV 4.2.0的文件目录中
新建build文件作为编译文件夹
mkdir build
cd build
配置cmake编译参数
cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
make编译
终端执行
make -j8
OpenCV4版本默认不生成.pc文件,执行OPENCV_GENERATE_PKGCONFIG=ON生成。
PS:这里-j的参数是根据CPU的核数,8核-j8,4核-j4
编译完成后执行安装:
sudo make install
配置OpenCV动态库
配置OpenCV动态库环境,程序执行时加载动态库.so的路径*
cd /etc/ld.so.conf.d/
sudo touch opencv4.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'
更新pkg-config:
sudo ldconfig
验证OpenCV环境
终端执行:
pkg-config --libs opencv4
pkg-config --cflags opencv4
出现如图所示即可表示OpenCV安装成功
# python环境下OpenCV环境验证:
进入Python环境,终端执行:
Python3
import cv2
安装Opencv_contrib
下载opencv_contrib
OpenCV-Github官方:https://github.com/opencv/opencv_contrib
配置编译项
进入OpenCV4.2.0的目录,清空刚才编译的build文件夹,重新编译:
这里需要注意Opencv_contrib的路径
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 -D OPENCV_EXTRA_MODULES_PATH=/home/bigboss/opencv-4.2.0/opencv_contrib-4.2.0/modules/ ../
出现的问题
一、ippicv下载问题
在Cmake编译中可能会出现ippicv下载问题
下载ippicv_2019_lnx_intel64_general_20180723.tgz
Github地址:https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180723/ippicv
PS:这里的下载根据自己的系统架构选择
修改opencv相关配置文件
进入**…/opencv-4.2.0/3rdparty/ippicv路径下打开ippicv.cmake**文件
修改第47行内容:将原来的下载网址替换为下载的本地文件路径:
"file:~/Downloads/" # 根据自己的实际路径参考
修改后:
二、boostdesc和vgg_generated文件下载较慢的问题
在编译中可能会遇到boostdesc和vgg_generated下载较慢的问题:
可以通过离线下载https://github.com/JZhong-Li/boostdesc_bgm.i
复制到到**opencv_contrib/modules/xfeatures2d/src/**目录中
make安装(Opencv_contrib)
终端执行make,-j的参数根据自己CPU实际内核做调整
maake -j4
如果遇到:
Makefile:165: recipe for target 'all' failed
make: *** [all] Error 2
重复执行make即可,
最后执行
sudo make install
OpenCV代码测试
调用摄像头
进入**/opencv-4.2.0/samples/cpp/example_cmake**
cd opencv-4.2.0/samples/cpp/example_cmake
cmake .
make
./opencv_example
执行结构: