自己搭建各種開源視覺環境時都需要在linux下安裝opencv,除卻window,只linux下安裝opencv來來回回也有七八次了吧。一直覺得這種搭建環境的簡單基礎操作沒必要寫博客,不過考慮到偶爾出現的小問題,還是做個記錄吧!方便下次再搭建新環境時直接找到答案,畢竟時過境遷,容易忘掉一些問題點!
一、源碼下載
opencv官網或着github下載源碼包opencv-3.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
後面再遇到其它小問題,會在此文基礎上繼續補充~