linux下opencv-3.4+opencv_contrib-3.4 源碼編譯安裝

自己搭建各種開源視覺環境時都需要在linux下安裝opencv,除卻window,只linux下安裝opencv來來回回也有七八次了吧。一直覺得這種搭建環境的簡單基礎操作沒必要寫博客,不過考慮到偶爾出現的小問題,還是做個記錄吧!方便下次再搭建新環境時直接找到答案,畢竟時過境遷,容易忘掉一些問題點!

一、源碼下載

opencv官網或着github下載源碼包opencv-3.4和附加包opencv_contrib-3.4(注意精確的版本號對應正確)

opencv3.4源碼地址

opencv_contrib-3.4附加包源碼地址

我目前下載到的最新的是3.4.8

解壓到自己想要的指定目錄下

注意:opencv2版本源碼安裝,不需要下載opencv_contrib附加包

二、cmake生成makefile文件

相關操作指令如下:

cd opencv-3.4

mkdir build

cd build

 

//下面是我跟據自己需要簡單設置的,基於CUDA的編譯方式

cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4/opencv_contrib-3.4/modules \
-D WITH_CUDA=ON ..

不需要CUDA編譯方式的話最後一句改爲 :

-D WITH_CUDA=OFF

三、正式編譯

//根據電腦的最大線程數,我的是四核八線程 可以用sudo make -j8

sudo make -j4 

然後進行安裝

sudo make install

四、更新動態類鏈接庫和bash配置
環境配置添加庫路徑

sudo gedit /etc/ld.so.conf.d/opencv.conf

//打開後可能是空文件,不用管,在文件內容最後添加即可

/usr/local/lib

更新系統庫

sudo ldconfig

配置bash

sudo gedit /etc/bash.bashrc  

//在末尾添加

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

保存,執行如下命令使得配置生效

source /etc/bash.bashrc

更新
 

sudo updatedb  

五、測試
1. 查看當前安裝opencv版本號

pkg-config opencv --modversion

顯示如:3.4.8

後面你可以寫個簡單的opencv程序測試下效果

六、遇到問題

(1)ippicv_2019_lnx_intel64_general_20180723.tgz 下載慢,卡住的問題。解決辦法手動下載後放在自我指定的目錄下,我放在了opencv-3.4目錄下,即與build同級目錄下。

然後修改opencv裏相關配置文件

gedit ~/opencv-3.4/3rdparty/ippicv/ippicv.cmake
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改爲手動下載的文件的本地路徑(也就是將網絡下載的模式改爲本地文件下載的模式
"file:~/opencv-3.4/"

(2)face_landmark_model.dat 同上(1)手動下載

gedit /home/usrname/opencv_path/opencv/3rdparty/ippicv/ippicv.cmake

改爲手動下載的文件的本地路徑(也就是將網絡下載的模式改爲本地文件下載的模式)

"file:~/opencv-3.4/"

(3)在安裝opencv的make編譯過程中,報關於ceres的錯誤,一開始覺得可能是ceres版本不對,
嘗試,卸載掉已經安裝的ceres-solve後問題解決。

注意:以上(1)(2)(3)每個問題相應更改後,都需要重新cmake一下,再進行make

附加:
另外在安裝cuda時,安裝cuda後需要配置環境變量
即在~/.bashrc中添加

export CUDA_HOME=/usr/local/cuda-9.0
export PATH=/usr/local/cuda-9.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

然後
source使其生效

同時也需要配置動態鏈接庫

gedit /etc/ld.so.conf.d/cuda.conf

添加:

/usr/local/cuda/lib64

更新生效

sudo ldconfig

後面再遇到其它小問題,會在此文基礎上繼續補充~

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