当前位置:   article > 正文

Ubuntu安装opencv 3.4.10及 opencv_contrib 扩展库(cmake或makefile引入opencv库)_ubuntu opencv_contrib依赖

ubuntu opencv_contrib依赖

Windows下安装不同,Ubuntu安装OpenCV库时,需要事先安装依赖,而且不同OpenCV库所需的依赖可能会有所不同,下面的依赖亲测 3.4.10 和 4.5.5版本的有效,但是4.6以上版本安装可能会报错。


参考链接:https://blog.csdn.net/m0_48609250/article/details/124225995

OpenCV配置CUDA环境参考链接:https://blog.csdn.net/ChunjieShan/article/details/125391238 


目录

一、卸载OpenCV

二、下载Opencv库和opencv_contrib扩展库

1、下载opencv库

2、下载 opencv_contrib

三、安装 Opencv 及 opencv_contrib 扩展库

1、配置依赖环境

2、安装opencv

(1) 解压目录

(2) cmake生成makefile配置文件

(3) 编译生成目标执行文件

(4) 开始安装 

(5) 查看版本信息

(6) 配置环境变量

四、引入Opencv库

1、cmake工程引入

2、makefile文件引入

五、 fatal error: boostdesc_bgm_xxx.i: No such file or directory

六、fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory 


一、卸载OpenCV

在ubuntu终端命令行输入以下命令进入安装opencv的build目录并进行卸载操作。

  1. cd build # 这里的build是当时编译opencv库时创建的build目录
  2. sudo make uninstall
  3. cd ..
  4. sudo rm -r build

二、下载Opencv库和opencv_contrib扩展库

1、下载opencv库

opencv官方下载:download | opencv

opencv国内快速下载:download | opencv

opencv官方下载

如果是官方下载,选择自己需要的版本,然后点击source

opencv国内快速下载

如果是国内快速下载,往下滑,选择自己需要的版本,点击进入

点进去以后,复制链接地址 

在Ubuntu的命令行中输入

  1. # wget 刚刚复制的链接地址
  2. wget https://www.raoyunsoft.com/opencv/opencv-3.4.10/opencv-3.4.10.tar.gz

2、下载 opencv_contrib

opencv_contrib 下载:download | opencv_contrib

选择和上面 opencv 一样的版本

 然后下载里面的源码,同样可以复制链接地址下载

wget https://github.com/opencv/opencv_contrib/archive/refs/tags/3.4.10.tar.gz

三、安装 Opencv 及 opencv_contrib 扩展库

1、配置依赖环境

如果不执行这一步,在生成配置文件的时候会报错。

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

2、安装opencv

(1) 解压目录

解压方才下载的opencv 和 opencv_contrib

  1. tar -zxvf opencv-3.4.10.tar.gz
  2. tar -zxvf 3.4.10.tar.gz

进入到解压目录,新建一个build目录,我们将在这个build目录中配置及安装opencv

  1. cd opencv-3.4.10
  2. mkdir build
  3. cd build

(2) cmake生成makefile配置文件

这里我们要告诉cmake扩展库 opencv_contrib 的地址,让他在编译的时候顺带把扩展库也一起编译。使用的编译选项为 -D OPENCV_EXTRA_MODULES_PATH

  1. # 注意是opencv_contrib 下的modules目录的地址
  2. cmake .. -D OPENCV_EXTRA_MODULES_PATH=/home/gzx/toolchain/opencv_contrib-3.4.0/modules

除此之外,还可以携带附加选项(根据自己的需求而定)

  1. # 安装到/user/local/opencv
  2. cmake .. -D OPENCV_EXTRA_MODULES_PATH=/home/gzx/toolchain/opencv_contrib-3.4.0/modules
  3. -D CMAKE_INSTALL_PREFIX=/usr/local/opencv \
  4. -D CMAKE_BUILD_TYPE=DEBUG \
  5. -D WITH_FFMPEG=ON
附加选项解析可选值
CMAKE_INSTALL_PREFIX指定安装位置
CMAKE_BUILD_TYPE选择编译方式RELEASE、DEBUG
OPENCV_GENERATE_PKGCONFIG是否生成PKGCONFIG需要的opencv.pc文件ON、OFF
BUILD_OPENCV_WORLD是否只是一个opencv_world动态链接库ON、OFF
WITH_Qt是否用Qt作为highgui模块的显示框架(需要先安装Qt)ON、OFF
WITH_FFMPEG是否使用FFMPEG进行视频IOON、OFF

(3) 编译生成目标执行文件

  1. #选择一: 编译命令逐条执行(比较慢)
  2. make
  3. #选择二:多条编译命令并行
  4. # 让make最多允许N个编译命令同时执行(N <= 2*处理器核数)
  5. make -jN

我给虚拟机分配了2核,可以输入 make -j4 来加快编译速度。在编译过程中,若遇到如下问题,可以参考如下链接。

         参考链接ubuntu编译opencv出现‘inconsistent operand constraints in an ‘asm‘

如果出现了类似于没有boostdesc_xxx.i 的问题,解决方法放在了最后一部分

(4) 开始安装 

开始安装

sudo make install

ldconfig命令的作用是为新安装的动态链接库创建连接所需的缓存文件,需要手动执行

ldconfig

(5) 查看版本信息

pkg-config --modversion opencv

(6) 配置环境变量

配置环境变量的目的是方便后续在cmake工程中引入

  • 如果只是当前用户使用,那就在家目录下的 .bashrc 或者  .bash_profile 中配置
  • 如果是当前系统的所有用户都可以使用,那就在 /etc/profile 文件中配置

下面我就在 /etc/profile 中配置,在  /etc/profile 的最后一行加上如下内容

export OPENCV_DIR=/home/linux/third-part/opencv-3.4.10/build

注意:环境变量名必须是OPENCV_DIR,路径是上面自己新建的build目录,目录下必须包含OpenCVConfig.cmake 文件

四、引入Opencv库

1、cmake工程引入

CMakeLists 文件的引入方式如下:

  1. find_package(OpenCV REQUIRED)
  2. include_directories(${OpenCV_INCLUDE_DIRS}) # 引入头文件目录
  3. file(GLOB ALL_SRCS src/*.cpp)
  4. add_executable(${PROJECT_NAME} ${ALL_SRCS })
  5. target_link_libraries(${PROJECT_NAME} # 引入库文件
  6. ${OpenCV_LIBS}
  7. )

2、makefile文件引入

makefile 是按需引入,假如你在代码中使用了如下头文件

  • #include <opencv2/core>
  • #include <opencv2/highgui>

那么相对应的,就要引入 库文件 libopencv_core.so、libopencv_highgui.so,引入的时候,需要去掉前缀 lib 和 后缀 .so

  1. INCS += -I/usr/local/include/ # 引入头文件路径
  2. LIBS += -L/usr/local/lib # 引入库文件路径
  3. LIBS += -lopencv_core -lopencv_highgui # 引入库文件
  4. obj: $(DEPENDS)
  5. $(CXX) -o $@ $^ $(LIBS) $(INCS)

五、 fatal error: boostdesc_bgm_xxx.i: No such file or directory

下载相关文件的链接:https://github.com/opencv/opencv_contrib/issues/1301

往下翻可以看到一个人的评论,所需的文件全都在这里了

方式一:手动下载(推荐)

有的时候会因为网络原因无法下载,可以右键点击“复制下载链接”

然后放到迅雷中下载

最后使用 xftp 再一次上传到Linux系统,下载好的文件都要保存到 opencv_contrib-4.3.0/modules/xfeatures2d/src/ 目录下 

方式二: 本地网络下载

将下载好的文件都移动到 opencv_contrib-4.3.0/modules/xfeatures2d/src/ 目录下 

  1. # boostdesc_lbgm.i
  2. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i
  3. # boostdesc_binboost_256.i
  4. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i
  5. # boostdesc_binboost_128.i
  6. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i
  7. # boostdesc_binboost_064.i
  8. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i
  9. # boostdesc_bgm_hd.i
  10. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i
  11. # boostdesc_bgm_bi.i
  12. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i
  13. # boostdesc_bgm.i
  14. wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i
  15. # vgg_generated_120.i
  16. https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i
  17. # vgg_generated_64.i
  18. https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i
  19. # vgg_generated_48.i
  20. https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i
  21. # vgg_generated_80.i
  22. https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i

六、fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory 

将 opencv-4.3.0/modules/features2d 目录拷贝到 build 目录下即可。

假设当前处在 build 目录下

cp -r ../modules/features2d ./
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/119875
推荐阅读
相关标签
  

闽ICP备14008679号