1. 程式人生 > >ubuntu16.04安裝opencv3.4.1

ubuntu16.04安裝opencv3.4.1

安裝Eigen3

sudo apt-get install libeigen3-dev
#拷貝
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

安裝依賴項

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev 
# 處理影象所需的包 
sudo apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev 
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev 
# 處理視訊所需的包
sudo apt-get install -y libxvidcore-dev libx264-dev 
# 優化opencv功能
sudo apt-get install -y libatlas-base-dev gfortran  
sudo apt-get install -y ffmpeg

在自己要安裝opencv的位置下載opencv3.4.1 github source: 可以到gitub下載:(可能比較慢)

wget https://github.com/opencv/opencv/archive/3.4.1.zip
wget https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
sudo apt-get install aria2
aria2c -c -s10 -k1M -x16 --enable-rpc=false -o "opencv-3.4.1.zip" --header "User-Agent: netdisk;5.3.4.5;PC;PC-Windows;5.1.2600;WindowsBaiduYunGuanJia" --header "Referer: https://pan.baidu.com/disk/home" --header "Cookie: BDUSS=paa3hGV3dYbnpoQlRDOG5jYnlqSEVlU3lDbXVNV2dybFF6ZTEzbzZJZ0JlMmxiQVFBQUFBJCQAAAAAAAAAAAEAAACyHgg5aGhnw~vR78zsz8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHuQVsB7kFbS3; pcsett=1538270082-2dc1426f5364346f2129902dc3319353" "https://pcs.baidu.com/rest/2.0/pcs/file?method=download&app_id=250528&path=%2FOpencv%2Fopencv-3.4.1.zip"

下載opencv contrib:

aria2c -c -s10 -k1M -x16 --enable-rpc=false -o "opencv_contrib-3.4.1.zip" --header "User-Agent: netdisk;5.3.4.5;PC;PC-Windows;5.1.2600;WindowsBaiduYunGuanJia" --header "Referer: https://pan.baidu.com/disk/home" --header "Cookie: BDUSS=paa3hGV3dYbnpoQlRDOG5jYnlqSEVlU3lDbXVNV2dybFF6ZTEzbzZJZ0JlMmxiQVFBQUFBJCQAAAAAAAAAAAEAAACyHgg5aGhnw~vR78zsz8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHuQVsB7kFbS3; pcsett=1538270082-2dc1426f5364346f2129902dc3319353" "https://pcs.baidu.com/rest/2.0/pcs/file?method=download&app_id=250528&path=%2FOpencv%2Fopencv_contrib-3.4.1.zip"

下載cmake的時候需要下載的檔案:(這一步不是必須,可能會用到,博主沒有用到這個):

aria2c -c -s10 -k1M -x16 --enable-rpc=false -o "cache.zip" --header "User-Agent: netdisk;5.3.4.5;PC;PC-Windows;5.1.2600;WindowsBaiduYunGuanJia" --header "Referer: https://pan.baidu.com/disk/home" --header "Cookie: BDUSS=paa3hGV3dYbnpoQlRDOG5jYnlqSEVlU3lDbXVNV2dybFF6ZTEzbzZJZ0JlMmxiQVFBQUFBJCQAAAAAAAAAAAEAAACyHgg5aGhnw~vR78zsz8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHuQVsB7kFbS3; pcsett=1538273029-13c03449b730a73ee159ac325a27deb6" "https://pcs.baidu.com/rest/2.0/pcs/file?method=download&app_id=250528&path=%2FOpencv%2Fopencv3.4.1%E7%BC%96%E8%AF%91%E6%97%B6%E9%9C%80%E8%A6%81%E4%B8%8B%E8%BD%BD%E7%9A%84%E6%96%87%E4%BB%B6%2Fcache.zip"

按道理上面的下載好,分別解壓,然後如下操作就可以編譯通過了

unzip opencv-3.4.1.zip
unzip opencv_contrib-3.4.1.zip

將opencv_contrib-3.4.1 拷貝到opencv-3.4.1資料夾下

cd opencv-3.4.1
mv ../opencv_contrib-3.4.1/   ./opencv-3.4.1/
mkdir build
mkdir install
cd build
#cmake的時候選項對應自己的情況作相應的修改,一下 -D CMAKE_INSTALL_PREFIX= 後面的地址改為你要安裝的地址
#CUDA_ARCH_BIN CUDA_ARCH_PTX指顯示卡的計算能力,GeForce GTC 1080Ti 的計算能力為6.1 可以在https://developer.nvidia.com/cuda-gpus查詢
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/hhg/Documents/opencv-3.4.1/Install -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.1/modules -D WITH_CUDA=ON -D WITH_CUBLAS=1 -D CUDA_ARCH_BIN="6.1" -D CUDA_ARCH_PTX="6.1" -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=ON -D WITH_OPENGL=ON -D WITH_V4L=ON WITH_NVCUVID=ON ..
#(-j16為多程序編譯,加快速度,依你自己電腦的實際情況設定)
make -j16 
sudo make install

編譯的時候出錯: … [ 83%] Built target opencv_ccalib [ 83%] Processing OpenCL kernels (ximgproc) Scanning dependencies of target opencv_ximgproc /home/hhg/Documents/opencv-3.4.1/opencv_contrib-3.4.1/modules/rgbd/src/odometry.cpp:41:45: fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory compilation terminated. modules/rgbd/CMakeFiles/opencv_rgbd.dir/build.make:134: recipe for target ‘modules/rgbd/CMakeFiles/opencv_rgbd.dir/src/odometry.cpp.o’ failed make[2]: *** [modules/rgbd/CMakeFiles/opencv_rgbd.dir/src/odometry.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs… [ 83%] Built target opencv_structured_light …

sudo gedit /home/hhg/Documents/opencv-3.4.1/opencv_contrib-3.4.1/modules/rgbd/src/odometry.cpp

修改: #include<unsupported/Eigen/MatrixFunctions> 為: #(此處為你最上面安裝eigen的時候的路徑,可以在computer下搜尋MatrixFunctions確定路徑位置) #include</usr/include/eigen3/unsupported/Eigen/MatrixFunctions>

設定opencv環境變數:

#設定環境變數,這裡依據自己上面設定的安裝路徑來設定
echo "#set opencv environments
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib
">>~/.bashrc
source ~/.bashrc
#檢視當前opencv使用的版本
pkg-config opencv --modversion