Ubuntu20安装opencv-contrib库

1.下载opencv和opencv-contrib源码

名称下载地址
Opencvhttps://github.com/opencv/opencv/releases
Opencv_contribhttps://github.com/opencv/opencv_contrib/releases

目录格式,以opencv-4.2.0为例:
/opt
—/opencv-4.2.0
------/opencv_contrib-4.2.0

2.下载需求文件

因网络限制,编译时下载文件可能报错,所以采用下载后编译形式,进入以下网址下载文件:

名称下载地址
ippicvhttps://github.com/opencv/opencv_3rdparty/blob/ippicv/master_20180723/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz
vgghttps://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_vgg_20160317
boostdeschttps://github.com/opencv/opencv_3rdparty/tree/contrib_xfeatures2d_boostdesc_2016101
face_landmark_modelhttps://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat

下载后目录格式:
/opt
—/opencv-4.2.0
------/opencv_contrib-4.2.0
---------/modules
------------/xfeatures2d
---------------/cmake
------------------download_boostdesc.cmake
------------------download_vgg.cmake
---------------/src
------------------boostdesc_bgm.i
------------------boostdesc_bgm_bi.i
------------------boostdesc_bgm_hd.i
------------------boostdesc_binboost_064.i
------------------boostdesc_binboost_128.i
------------------boostdesc_binboost_256.i
------------------boostdesc_lbgm.i
------------------vgg_generated_48.i
------------------vgg_generated_64.i
------------------vgg_generated_80.i
------------------vgg_generated_120.i
------------/face
---------------/src
------------------face_landmark_model.dat
---------------CMakeLists.txt
------/3rdparty
---------/ippicv
------------ippicv.cmake
------------ippicv_2019_lnx_intel64_general_20180723.tgz
xx表示需要修改的文件,xx表示需要下载的文件

需要修改相应文件实现直接从本地读取文件
修改 download_boostdesc.cmake 文件

#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${OPENCV_3RDPARTY_COMMIT}/”
“file:/opt/opencv-4.2.0/opencv_contrib-4.2.0/modules/xfeatures2d/src/”

修改 download_vgg.cmake 文件

#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${OPENCV_3RDPARTY_COMMIT}/”
“file:/opt/opencv-4.2.0/opencv_contrib-4.2.0/modules/xfeatures2d/src/”

修改 CMakeLists.txt 文件

#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/”
“file:/opt/opencv-4.2.0/opencv_contrib-4.2.0/modules/face/src/”

修改 ippicv.cmake 文件

#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv”
“file:/opt/opencv-4.2.0/3rdparty/ippicv/”

3.编译安装

cd /opt/opencv-4.2.0
sudo mkdir build && cd build
sudo cmake -D WITH_CUDA=OFF\
 -D WITH_VTK=OFF\
 -D BUILD_TIFF=OFF\
 -D CMAKE_BUILD_TYPE=RELEASE\
 -D CMAKE_INSTALL_PREFIX=/usr/local/opencv_4.2.0\
 -D OPENCV_GENERATE_PKGCONFIG=YES\
 -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv-4.2.0/opencv_contrib-4.2.0/modules\
 -D OPENCV_PYTHON3_VERSION=3.8 -D PYTHON3_INCLUDE_PATH=/usr/include/python3.8\
 -D PYTHON3_LIBRARIES=/usr/lib/x86_64-linux-gnu/libpython3.8.so\
 -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include\
 -D PYTHON3_EXECUTABLE=/usr/bin/python3.8 -D ENABLE_PRECOMPILED_HEADERS=OFF ..
sudo make -j10
sudo make install

4.编译时可能遇到的错误

Project 'cv_bridge' specifies '/usr/include/opencv4' as an include dir, which is not found. It does neither exist as an absolute directory nor in ‘${{prefix}}//usr/include/opencv4’

原因:重装过opencv导致cv_bridge中一些路径无效
解决:修改/opt/ros/noetic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

#if(NOT “include;/usr/include/opencv4” STREQUAL “ ”)
if(NOT “include;/usr/local/opencv_4.2.0/include/opencv4 ” STREQUAL “ ”)
#set(_include_dirs “include;/usr/include/opencv4”)
set(_include_dirs “include;/usr/local/opencv_4.2.0/include/opencv4”)
  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值