ubuntu下安装opencv,cuda9.0下

一、安装Qt5

sudo apt-get install Qt5-default

二、Cmake版本3.8以上

1、移除久版本

 

sudo apt-get autoremove cmake

2、文件下载

 

wget https://cmake.org/files/v3.9/cmake-3.9.1-Linux-x86_64.tar.gz

3、创建软链接

 

mv cmake-3.9.1-Linux-x86_64 /opt/cmake-3.9.1
ln -sf /opt/cmake-3.9.1/bin/*  /usr/bin/ 

4、查看版本

cmake --version

三、安装opencv

1、安装依赖包

 

# 安装编译工具
sudo apt-get install build-essential
# 安装依赖包
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# 安装可选包
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2、编译安装

下载:https://opencv.org/releases.html

ubuntu下安装opencv,cuda9.0下_第1张图片

选择source

解压:

unzip opencv-2.4.13.zip

mv opencv-2.4.13 path

# 打开文件夹"opencv-2.4.13":
cd opencv-2.4.13
# 新建一个文件夹用于存放临时文件:
mkdir release
# 切换到该临时文件夹:
cd release
# 开始编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4    # 开启线程 按照自己的配置
sudo make install

3、常见错误:

(1)在这个过程中,由于是cuda的64位和32位的问题,会出现 no found nppi...的问题(

 

CMake Error: Variables are set to NOTFOUND)。

解决方法为:https://stackoverflow.com/questions/46584000/cmake-error-variables-are-set-to-notfound

在opencv-2.4.13/cmake下找到FindCUDA.cmake文件,将:

 

find_cuda_helper_libs(nppi)

替换为:

 

 find_cuda_helper_libs(nppial)
  find_cuda_helper_libs(nppicc)
  find_cuda_helper_libs(nppicom)
  find_cuda_helper_libs(nppidei)
  find_cuda_helper_libs(nppif)
  find_cuda_helper_libs(nppig)
  find_cuda_helper_libs(nppim)
  find_cuda_helper_libs(nppist)
  find_cuda_helper_libs(nppisu)
  find_cuda_helper_libs(nppitc)
set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppi_LIBRARY};${CUDA_npps_LIBRARY}")

替换为:

 

set(CUDA_npp_LIBRARY "${CUDA_nppc_LIBRARY};${CUDA_nppial_LIBRARY};${CUDA_nppicc_LIBRARY};${CUDA_nppicom_LIBRARY};${CUDA_nppidei_LIBRARY};${CUDA_nppif_LIBRARY};${CUDA_nppig_LIBRARY};${CUDA_nppim_LIBRARY};${CUDA_nppist_LIBRARY};${CUDA_nppisu_LIBRARY};${CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}")

 

unset(CUDA_nppi_LIBRARY CACHE)

替换为:

 

unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)

同时,由于cuda9.0不支持2.0,所以,在该目录下找到OpenCVDetectCUDA.cmake文件:

 

  ...
  set(__cuda_arch_ptx "")
  if(CUDA_GENERATION STREQUAL "Fermi")
    set(__cuda_arch_bin "2.0")
  elseif(CUDA_GENERATION STREQUAL "Kepler")
    set(__cuda_arch_bin "3.0 3.5 3.7")
  ...

去掉第一个if句,去掉elseif的else

 

set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1") 

去掉2.0

(2)如果cmake遇到unsupport “compute_20”

nvcc fatal : Unsupported gpu architecture 'compute_20'

用以下方式编译:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler ..

 

你可能感兴趣的:(软件安装)