Ubuntu系统的opencv 3.4安装

opencv代码下载去码云更快:
https://gitee.com/mirrors/opencv
https://gitee.com/mirrors/opencv_contrib
以后想更新了也可以直接在码云上更新,这个镜像站点是每日同步。
需要注意的是,git clone下来的需要切换一下分支到3.4(如果想用其他版本,切换到相应再编译安装即可)。下面就用命令一步到位:

git clone https://gitee.com/mirrors/opencv.git
cd opencv
git checkout remotes/origin/3.4
git clone https://gitee.com/mirrors/opencv_contrib.git
cd opencv_contrib
git checkout remotes/origin/3.4

上面的命令就把代码下载好了,也切换了3.4版本。接下来编译,参考教程:https://www.cnblogs.com/zzy1024/p/11405641.html
继续在刚刚的终端输入:

# 切换到 open/build目录下
cd .. && mkdir build && cd build

下面这条就是cmake命令,但是不要着急输入,建议先解决下面几个问题(都是网络原因造成的),把该下载的文件下载好,放到指定目录下。

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_VTK=ON -D WITH_QT=ON -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D CMAKE_CXX_FLAGS="-std=c++11" -D OPENCV_ENABLE_NONFREE=true ..

问题1

cmake在安装过程中,网络原因会导致一些文件下载失败,我们可以自行下载安装。这些“问题文件”都集中在/home/xxx/opencv/.cache目录下,自行下载后,放到该目录下替换即可。

(1) ippicv ,参考教程:手动安装OpenCV下的IPP加速库
核心是找出opencv/3rdparty/ippicv/ippicv.cmake文件里面的3个关键值,根据自己电脑上这个文件的内容去看,下面3个值是我的:

  • 下载目录的地址:https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/
  • IPPICV_COMMIT值:a56b6ac6f030c312b2dce17430eef13aed9af274
  • 文件名:ippicv_2020_lnx_intel64_20191018_general.tgz

三个值组合起来,就是我的下载地址:
https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz

下载好了之后,直接放到opencv/3rdparty/ippicv/目录下,ippicv.cmake文件的第42行的"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"改为"file:///home/xxx/opencv/3rdparty/ippicv/"即可。

(2) face_landmark_model.dat下载地址,下载完后放到/home/xxx/opencv/.cache/data目录下,替换那个还没下载完的文件就行了。参考博客:face_landmark_model.dat 下载地址

问题2

因为网络原因,cmake还会遇到缺少boostdesc_bgm.i等文件的问题,具体原因可以参考:https://blog.csdn.net/u011736771/article/details/85960300https://github.com/opencv/opencv_contrib/issues/1301
简单起见,可以直接运行一个脚本,用curl下载相应的文件。脚本放到./opencv目录下运行即可,内容如下:

#!/bin/bash
cd ./cache/xfeatures2d/
cd boostdesc
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i > 0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i > e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i > 98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i > 202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i > 324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i > 232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i > 0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
cd ../vgg
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i > 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i > 7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i > e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i > 7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i

解决了上面这些问题,再cmake。我这开了VTK和QT的编译选项,不需要的可以删除。

cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_VTK=ON -D WITH_QT=ON -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D CMAKE_CXX_FLAGS="-std=c++11" -D OPENCV_ENABLE_NONFREE=true ..

再继续编译安装:

make -j2
sudo make install

注意问题,要用SIFT、SURF等有专利的方法,上面 cmake 选项中 -D OPENCV_ENABLE_NONFREE=true是必选的,SIFT的调用可以参考博客:Opencv3.1.0+opencv_contrib配置及使用SIFT测试

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章