Ubuntu18.04下安装OpenCV4.2.0与Opencv_contrib(图文详细报错总结)

前期准备—环境依赖

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文件下载较慢的问题

在编译中可能会遇到boostdescvgg_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版本 (补充)

 sudo gedit /etc/ld.so.conf.d/opencv.conf

PS:执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加并保存

/usr/local/lib

在这里插入图片描述
同步配置路径生效

sudo ldconfig

配置bash

sudo gedit /etc/bash.bashrc

在最末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

在这里插入图片描述

保存使得配置生效

source /etc/bash.bashrc  

更新环境信息

sudo updatedb

OpenCV代码测试

调用摄像头

进入**/opencv-4.2.0/samples/cpp/example_cmake**

cd opencv-4.2.0/samples/cpp/example_cmake
cmake .
make
./opencv_example

执行结构:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50679163/article/details/128799489