ubuntu18.04下载opencv4.5.1及opencv-contrib时遇到的问题记录

本篇仅用作个人在ubuntu18.04下配置opencv4.5.1时遇到的问题作记录。


        在运行一个光流跟踪视频的程序时,需要使用opencv4以上的版本。由于本人之前跑orbslam系统时使用的opencv库为3.4.3,考虑到后续可能还需要使用该版本的库,便没有卸载该库。在安装新的opencv库时遇到了诸多困难,先对其作部分记录。

一、opecv_contrib库

        第一次安装运行的时候没有安装contrib库,但是程序需要使用xfeature2d,该文件包含于opencv_contrib库中,该库叫做opencv贡献库,是opencv核心库(也就是我们安装的opencv的版本)的扩展,它包含了绝大多数用户生成的内容,同时也比核心库OpenCV拥有更完整的关于CV的算法应用。库中的模块与模块之间没有任何软件依赖。 每一个模块都要求自身具备文档说明、单元测试案例和样本代码,并且绝大多数模块通常还包含了模块教程。OpenCV核心库必须通过的测试,例如,每一个模块必须服从所有其他的格式、自动化软件构架测试、单元测试等等。opencv_contrib中的模块也必须通过这些测试。编译的时候,opencv_contrib库需要从OpenCV核心库中抽离出来,并独立编译。注意下载安装时版本保持与opencv核心库一致。核心库和contrib库下载链接如下:

https://github.com/opencv/opencv/releases/tag/4.5.1

https://github.com/opencv/opencv_contrib/releases/tag/4.5.1


二、安装和编译时遇到的问题

        首先要将contrib文件夹移到opencv4.5.1里,随后进行编译安装。

问题1.ippicv

        该文件在程序里是在线下载,由于速率太慢导致下载失败,因此需要手动下载该压缩文件,下载链接如下:

        https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20180518/ippicv

        该文件无需解压,为将其放在opencv-4.5.1文件夹下,在终端打开如下文件:

cd /opencv-4.5.1/3rdparty/ippicv
sudo gedit ippicv.cmake

将其中的下载链接注释掉,改为本地存放下载的压缩包的目录下,并且在上述name处修改为你下载的安装包的名字(我下载的并非链接这个版本,而是“ippicv_2020_lnx_intel64_general_20191018_general.tgz”,与压缩包命名一致即可)

问题2.face_landmark_model.dat缺失

        与上述问题基本相同,也需要手动下载,下载链接在这。

        下载好之后将其放入到扩展库的face文件夹里,本人路径如下:/home/lcy/opencv-4.5.1/opencv_contrib-4.5.1/modules/face,随后修改/modules/face/CMakeLists.txt里的下载路径:

问题3.各种i类文件的缺失

将其下载后放在opencv_contrib-4.5.1/modules/xfeatures2d/src/下即可,我上上述三个问题的文件放在如下网盘链接里,需要的兄弟自取。

链接: https://pan.baidu.com/s/1QkT1YA3XSs5pWthKZ_WqYA?pwd=jnan 提取码: jnan
 

问题4.编译的命令

sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4 -D BUILD_TESTS=OFF -D OPENCV_ENABLE_NONFREE=True -D WITH_IPP=OFF -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.1/modules/ ..

本人经过多次调整,使用该语句进行编译(仅针对本人情况,大伙自行根据自己的强情况进行调整),OPENCV_GENERATE_PKGCONFIG=YES是因为opencv在版本4以上是不会自动生成配置文件,需要手动设置该参数为真,CMAKE_INSTALL_PREFIX设置安装路径,由于需要多版本复用,因此多设置了一个目录,关闭TEST是之前编译出错时遇到某问题的解决方法,-D WITH_IPP=OFF是关闭问题1的在线下载(这句不要也可以),最后一句是设置扩展库路径。

编译完成后按照正常的环境变量配置即可。

问题5.运行例程时报错

主要是找不到对应的opencv文件,因此对cmakelists语句进行修改:

set(OpenCV_DIR /usr/local/opencv4/lib/cmake/opencv4)
find_package(OpenCV 4 REQUIRED)

将其目录定位到对应的文件夹,find package时寻找版本4以上的即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值