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測試

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