你好,游客 登录 注册 搜索
背景:
阅读新闻

Ubuntu 16.04 编译安装OpenCV 3.1及OpenCV多版本切换

[日期:2017-01-07] 来源:Linux社区  作者:Swearos [字体: ]

Ubuntu 16.04下编译安装OpenCV 3.1及OpenCV多版本切换的过程。

第一步:更新驱动

Ubuntu 16.04的更新管理器集成了驱动更新,选择安装nivdia的驱动

第二步:安装cuda

sudo apt-get install nvidia-cuda-toolkit

cuda是7.5.18版,安装完后重启,在终端输入nivdia-smi,有结果则驱动和cuda安装成功。

但是cuda只支持gcc5.0以下,即使后续用cmake编译opencv成功,gpu还是无法调用

第三步:强制取消cuda的gcc版本检查

注释掉host_config.h中关于gcc版本的检查,版本大于5则返回错误

//#if __GNUC__ > 5
//#error -- unsupported GNU version! gcc versions later than 5 are not supported!
//#endif /* __GNUC__ > 5 */

通过nvidia-cuda-toolkit安装的,host_config.h在 /usr/include/下,如果通过cuda的run文件安装,也会因为gcc版本检查提示错误,也要修改对应位置的host_config.h

法二:通过修改gcc版本降级

第四部:安装OpenCV相关的库

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 libtbb-dev libboost-dev libeigen3-dev

sudo apt-get install libxml2-dev libxslt-dev libffi-dev libsdl1.2-dev libssl-dev libboost-all-dev

第五步:cmake编译
安装cmake-gui

ippicv_linux_20151201.tgz 下载到Linux公社1号FTP服务器下载

------------------------------------------分割线------------------------------------------

FTP地址:ftp://ftp1.linuxidc.com

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 20177年LinuxIDC.com\1月\Ubuntu 16.04 编译安装OpenCV 3.1及OpenCV多版本切换\

下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm

------------------------------------------分割线------------------------------------------ 

相关选项:

  1. 添加opencv-contrib模块
  2. CUDA_GENERATION模式设定为auto,不是kepler。 我的显卡 Compute Capability是5.0,kepler默认3.0(3.5),导致编译之后的opencv调用cuda,出现api不符合,因为CUDA_ARCH_BIN与电脑显卡不一致,具体请查看,确认CUDA_ARCH_BIN与你显卡的Compute Capability一致,如果不一致,CUDA_GENERATION请选择auto或者空白,然后填入显卡对应的Compute Capability
  3. 添加tbb,ipp最好提前下载(下载见Linux公社1号FTP服务器),解压放/opencv-3.1.0/3rdparty/ippicv/中,
  4. 勾选CUBLAS,Eigen,ipp,opengl,注意编译之前确保numpy已经安装,否则最后不会生成cv2.so
  5. 强烈建议:如果准备opencv2.4.和opencv3.1切换使用,(毕竟opencv3.1实现了很多新论文相关算法,opencv2.4也比较常见),请进行如下设置:
修改cmake_install_prefix,
opencv3.1 安装目录/usr/local/opencv3,
opencv2.4 安装目录/usr/local/opencv2,
在cmake-gui中可以搜索cmake_install_prefix,修改。
注意如果准备切换opencv版本,一定不要选择默认路径,否则,链接opencv的时候会因为多版本的lib发生链接冲突。
  1. configure以及generate,生成的build下面

    make -j4  //多线程编译
    sudo make install 

第六步:跳过系统环境变量的设置,设置/etc/profile和~/.bashrc导致同时使用不同版本时发生错误,所以跳过;
配置终端的环境变量,不同的终端设置不同的opencv
步骤:
打开终端,需要运行opencv3的,注意/usr/local/opencv3为opencv3.1的安装目录

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

相应的,需要运行opencv2的,注意/usr/local/opencv2为opencv2.4*的安装目录

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

pkgcongfig中的有opencv.pc保存有对应opencv的include和lib路径,但是sudo ldconfig后生效,
可以用下列三个命令验证

pkg-config --modversion opencv 
pkg-config --cflags opencv 
pkg-config --libs opencv 

优点:
可以不同版本的opencv同时编译;
缺点:
每个终端下运行opencv 都要设置对应的环境变量,新建终端默认没有opencv的环境变量需要从重新设置。

第七步:CMakeLists的一点点修改
因为usr/local/opencv3/share/OpenCV/OpenCVConfig.cmake中设置了opencv的配置,自定义路径安装opencv时,找不到这个文件OpenCVConfig.cmake,opencv-config.cmake
需要在项目的CMakeList.txt中添加OpenCVConfig.cmake的路径

set(CMAKE_PREFIX_PATH "/usr/local/opencv3/share/OpenCV")

根据自定义的opencv路径修改。

error:1 /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope

原因g++版本太新了,兼容一下,在出现上面错误时,在CMakeLists.txt中前面几行添加

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")

OpenCV官方教程中文版(For Python) PDF  http://www.linuxidc.com/Linux/2015-08/121400.htm

Ubuntu 14.04安装OpenCV2.4.9  http://www.linuxidc.com/Linux/2016-07/132884.htm

Ubuntu 12.04下安装OpenCV 2.4.5总结 http://www.linuxidc.com/Linux/2013-06/86704.htm

Ubuntu 16.04上用CMake图形界面交叉编译树莓派的OpenCV3.0 http://www.linuxidc.com/Linux/2016-10/135914.htm

Ubuntu 16.04中安装OpenCV 2.4.11  http://www.linuxidc.com/Linux/2016-07/132882.htm

Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安装  http://www.linuxidc.com/Linux/2016-07/132860.htm

[翻译]Ubuntu 14.04, 13.10 下安装 OpenCV 2.4.9  http://www.linuxidc.com/Linux/2014-12/110045.htm

Ubuntu 安装 OpenCV 2.4.9  http://www.linuxidc.com/Linux/2016-12/138293.htm

OpenCV的详细介绍请点这里
OpenCV的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-01/139325.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款