<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">之前在ubuntu下用github上的腳本一鍵安裝了OpenCV,最近在用一個密集光流計算程序時發現需要用gpu版本的OpenCV,因此需要在編譯opencv時選擇CUDA支持。</span>
在過程中遇到了各種問題,主要參考了以下兩篇內容
http://blog.aicry.com/ubuntu-14-04-install-opencv-with-cuda/
http://answers.opencv.org/question/35642/libtiff_40-link-errors/
下面開始介紹,假定讀者在此步之前已經安裝好了CUDA,CUDA的安裝教程網上很多
安裝依賴庫
sudo apt-get update
sudo apt-get install libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff4-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils
sudo add-apt-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
sudo apt-get install frei0r-plugins
下載OpenCV資源
首先先cd到要下載opencv的路徑下
mkdir OpenCV
cd OpenCV
git clone https://github.com/Itseez/opencv.git
BUILD and INSTALL
cd opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D BUILD_TIFF=ON..
原文中最後沒有加上-D BUILD_TIFF=ON 的選項,這樣在make的時候可能會遇上LIBTIFF_4.0 link errors(見上面的第二個鏈接)
在cmake打印的信息中確認下CUDA和CUDALS的狀態是否是YES:
-- Use Cuda: YES (ver 8.0)
-- Use OpenCL: YES
--
-- NVIDIA CUDA
-- Use CUFFT: YES
-- Use CUBLAS: YES
-- USE NVCUVID: NO
-- NVIDIA GPU arch: 11 12 13 20 21 30 35
-- NVIDIA PTX archs: 30
-- Use fast math: YES
確認無誤後就可以安裝了
make
sudo make install
配置.bashrc
最後配置bashrc文件,使得系統能找到opencv的位置
echo '/usr/local/lib' | sudo tee -a /etc/ld.so.conf.d/opencv.conf
sudo ldconfig
printf '# OpenCV\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig\nexport PKG_CONFIG_PATH\n' >> ~/.bashrc
source ~/.bashrc
這樣gpu版本的opencv就編譯完成了,可以調用opencv中gpu相關的函數