ubuntu18及20下Opencv-4.3.0带contrib源码编译及问题解析

话不多说,直接干货走起,本来是自用记录,但是如果小白跟我步骤一步一步走基本没有问题的

另外提一下,如果有条件尽量科学上网,编译过程时常遇到问题大多都是网络不给力造成的,实在不行就用手机开热点

一、源码下载

首先,下opencv4.3和contrib,链接贴下面了

https://opencv.org/releases/page/3/       opencv直接下载source版本

Release 4.3.0 · opencv/opencv_contrib · GitHub  contrib直接下载源码

下载好后opencv解压缩出来一个opencv-4.3.0的文件夹,contrib解压后文件夹放入opencv文件夹里,目录如图所示

二、安装依赖

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
sudo apt-get install python3-dev		
sudo apt-get install python-dev			

三、补充编译所需文件


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

下载下来的文件放到/opencv-4.3.0/opencv_contrib-4.3.0/modules/xfeatures2d/src 下面

前期准备工作完成,接下来就是编译了

四、编译

首先进入opencv-4.3.0根目录,创建build文件夹

mkdir build && cd build

进行cmake

#第四个参数的路径记得要跟自己的实际路径对应上
cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_GENERATE_PKGCONFIG=ON .. \
    -D OPENCV_EXTRA_MODULES_PATH=/home/tlq/opencv-4.3.0/opencv_contrib-4.3.0/modules ..

进行make

sudo make clean 
sudo make -j8

如果报错,往下跳转看问题解决方法,或者直接去网上照着错误找一找,解决完后继续执行make操作,如果构建完成就继续进行安装

sudo make install

五、配置环境

选择一款编辑文本的如gedit nano vim,我一般用gedit,操作比较简单

配置ld.so.conf文件

sudo gedit /etc/ld.so.conf

在文件中加入一行/usr/local/lib,最终文件内容为

include /etc/ld.so.conf.d/*.conf
/usr/local/lib

完成后保存文件关闭,继续

sudo ldconfig

然后修改另一个文件

sudo gedit /etc/bash.bashrc

在文件最后另起一行加入

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

保存文件关闭后继续

source /etc/bash.bashrc

此时安装基本完成,如果想测试的话,有多种方法可以去查一下,这里介绍一个比较简单的,输出应该是4.3.0

whereis opencv_version
opencv_version

六、问题解析

我就遇到了一个问题:make的时候报错

fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录

解决方法:

将opencv-4.3.0/modules/features2d/test/文件下的如下文件

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_contrib-4.3.0/modules/xfeatures2d/test/文件下

然后,将opencv_contrib-4.3.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_contrib-4.3.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"

保存文件后重新编译即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值