Ubuntu18.04+Opencv4.4.0+contrib详细配置过程

Ubuntu18.04+Opencv4.4.0+contrib详细配置过程

这两天在弄一个实时检测有关的QT项目,欲尝试下yolov4。原本一直用的4.1版本,但并不支持yolov4,只能重装一个4.4.0版本。
本想先在windows环境用QT测试下,结果由于MSVC版本不匹配,得自己编译mingw的opencv包,编译过程遇到了无数的坑,折腾两天后决定还是直接用ubuntu系统。
本文opencv4配置只针对C++。

1. 安装准备

1.1 安装依赖项

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libgtk2.0-dev pkg-config

1.2 下载opencv和contrib

Opencv官网下载4.4.0的Sources,下好后解压
github下载4.4.0的contrib压缩包
将contrib压缩包解压后放进之前解压好的Opencv Sources的文件夹下
在这里插入图片描述

2. 编译安装

在上图所示的文件夹中打开终端

mkdir build  		
cd build       		
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=YES -D OPENCV_EXTRA_MODULES_PATH=/home/yourname/opencv-4.4.0/opencv_contrib-4.4.0/modules/ ..
make -j4  			
sudo make install 	

CMAKE_INSTALL_PREFIX是安装路径,如果没特殊需求建议就用/usr/local
OPENCV_ENABLE_NONFREE=YES是允许使用申请了专利的一些算法,必须加上这句
OPENCV_GENERATE_PKGCONFIG=ON因为opencv4默认不生成.pc文件,所以加上这句
OPENCV_EXTRA_MODULES_PATH是contrib包的路径,改成你自己的

3. 一些错误

3.1 cmake中有些文件下载失败

可以在build文件夹下的CMakeDownloadLog.txt中查看,主要看#cmake_download这行,前面是文件名,后面是下载地址,缺什么下什么。
其中有11个文件好像网上大多数人都会缺,如下图我选中的那11个,boostdesc_bgm.i,vgg_generated_48.i那些。成
在这里插入图片描述
单独下载完后,将这11个放进/opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/src/文件夹下。
其他如果还有缺的,根据CMakeDownloadLog.txt中的路径将它们下载完再放到指定地方。

3.2 make过程中一些头文件找不到

make到一半又会出现
fatal error : feature2d/test/test_detectors_regression.impl.hpp:没有那个文件或目录

解决方法:对比一下opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/test/ 和 opencv-4.4.0/modules/feature2d/test/ 文件夹,看看前者缺了哪些.hpp文件,然后把缺的那些都复制进去,应该是缺了以下五个。

test_descriptors_invariance.impl.hpp
test_descriptors_regression.impl.hpp
test_detectors_invariance.impl.hpp
test_detectors_regression.impl.hpp
test_invariance_utils.hpp

然后将opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/test/test_features2d.cpp中的

#include "features2d/test/test_detectors_regression.impl.hpp"
#include "features2d/test/test_descriptors_regression.impl.hpp"

改为

#include "test_detectors_regression.impl.hpp"
#include "test_descriptors_regression.impl.hpp"

再将opencv-4.4.0/opencv_contrib-4.4.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp中的

#include "features2d/test/test_detectors_invariance.impl.hpp" 
#include "features2d/test/test_descriptors_invariance.impl.hpp"

改为

#include "test_detectors_invariance.impl.hpp"
#include "test_descriptors_invariance.impl.hpp"

如果还有其他类似错误,则以此类推。

4. 环境配置

4.1 环境配置添加库路径

在/etc/ld.so.conf.d/opencv4.conf中(如果没有就自己新建一个)写入/usr/local/lib。

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

保存然后更新一下。

sudo ldconfig

4.2 配置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

4.3 配置ld.so.conf

有时会报错error while loading shared libraries: libopencv_core.so.*
这时候就加一步

sudo gedit /etc/ld.so.conf
在末尾加上/usr/local/lib

保存然后更新一下

sudo ldconfig

4.4 验证

pkg-config --modversion opencv

看看显示的版本是不是4.4.0。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值