Ubuntu14.04下opencv3和opencv2共存和使用方法
2017-09-04 21:09
447 查看
本系列文章为原创,转载请注明出处。
作者:Dongdong Bai
邮箱: baidongdong@nudt.edu
若您觉得本博文对您有帮助,请您为我点赞并关注我,以鼓励我写出更优秀的博文。谢谢!
安装官方可选包:
添加对OpenGL的支持所需要的包:
安装视频处理所需的包
优化opencv的功能包
作者:Dongdong Bai
邮箱: baidongdong@nudt.edu
若您觉得本博文对您有帮助,请您为我点赞并关注我,以鼓励我写出更优秀的博文。谢谢!
一、 安装多版本OpenCV的原因
OpenCV2和OpenCV3是目前主流的两个版本,有些程序使用OpenCV2,同时有些程序使用了OpenCV3,但是OpenCV2和OpenCV3的API和结构并不完全相同,比如在OpenCV3以后,SIFT和SURF之类的属性被移到了contrib中了,因此我们需要在一台计算机上同时安装并使用多个版本OpenCV。二、 安装OpenCV2和OpenCV3
1. 安装依赖库
安装官方要求必选包:sudo apt-get install build-essential 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
添加对OpenGL的支持所需要的包:
sudo apt-get install freeglut3-dev mesa-common-dev libgtkglext1 libgtkglext1-dev
安装视频处理所需的包
sudo apt-get install checkinstall yasm libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
优化opencv的功能包
sudo apt-get install libatlas-base-dev gfortran qt5-default qtcreator
2.下载源代码
下载OpenCV2.4.13.3源代码:git clone https://github.com/opencv/opencv/tree/2.4.13.3[/code]
下载OpenCV3.3.0源代码:git clone https://github.com/opencv/opencv/tree/3.3.0[/code]
下载OpenCV3.3.0_contrib源代码:git clone https://github.com/opencv/opencv_contrib/tree/3.3.0[/code]2.安装OpenCV2和OpenCV3 (无CUDA版本)
安装OpenCV2.4.13.3$ cd opencv-2.4.13.3/ $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local/opencv2 \ -DWITH_TBB=ON \ -DWITH_IPP=ON \ -DWITH_QT=ON \ -DWITH_GTK=ON \ -DWITH_V4L=ON \ -DWITH_LIBV4L=ON \ -DWITH_OPENGL=ON \ -DWITH_FFMPEG=ON \ -DBUILD_EXAMPLES=ON \ -DINSTALL_PYTHON_EXAMPLES=ON \ -DINSTALL_C_EXAMPLES=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python \ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \ -DPYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 \ -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \ -DPYTHON_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ .. $ make -j $(($(nproc) + 1)) $ sudo make install
安装OpenCV3.3.0:
首先将OpenCV3.3.0_contrib-3.3.0放到opencv-3.3.0目录下,然后执行下面命令。$ cd opencv-3.3.0/ $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local/opencv3 \ -DOPENCV_EXTRA_MODULES_PATH=/home/bdd/opencv-3.3.0/opencv_contrib-3.3.0/modules \ -DWITH_TBB=ON \ -DWITH_QT=ON \ -DWITH_GTK=ON \ -DWITH_V4L=ON \ -DWITH_LIBV4L=ON \ -DWITH_OPENGL=ON \ -DWITH_FFMPEG=ON \ -DBUILD_EXAMPLES=ON \ -DINSTALL_PYTHON_EXAMPLES=ON \ -DINSTALL_C_EXAMPLES=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python \ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \ -DPYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 \ -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \ -DPYTHON_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ .. $ make -j $(($(nproc) + 1)) $ sudo make install
其中OPENCV_EXTRA_MODULES_PATH:指定的OpenCV3.3.0_contrib路径3.安装OpenCV3和OpenCV3 (CUDA版本)
CUDA版的安装方法与无CUDA版的方法类似,除了安装CUDA的一些驱动外,只是在cmake后面添加一些关于CUDA的参数。
安装CUDA8.0,cuDNN,NCCL请参见NVIDIA官方教程:http://www.nvidia.cn/object/caffe-installation-cn.html,该教程不仅简单,而且稳定,不会出现图形界面崩溃等各种问题,强力推荐。
当然,如果出现Ubuntu在系统启动logo过后无法进入桌面的问题可以参考我的另一篇博文:http://blog.csdn.net/u011092188/article/details/58638991
对于CMake中关于CUDA的选项设置,其中要注意的是 CUDA_GENERATION 的设置。如果选择您GPU内核的型号(Pascal、Maxwell等),那么就不需要设置CUDA_ARC_BIN和CUDA_ARC_PTX参数,可是这种条件下会导致一些错误。推荐的方法是设置 CUDA_GENERATION = Auto,然后到这个网址查看您显卡的Compute Capability,填到CUDA_ARC_BIN,CUDA_ARC_PTX中。比如的我的显卡是GTX TITANXP,其对应的Compute Capability为6.1,那么应该设置CUDA_ARC_BIN=6.1,CUDA_ARC_PTX=6.1
安装OpenCV2.4.13.3$ cd opencv-2.4.13.3/ $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local/opencv2 \ -DWITH_TBB=ON \ -DWITH_IPP=ON \ -DWITH_QT=ON \ -DWITH_GTK=ON \ -DWITH_CUDA=ON \ -DWITH_CUBLAS=ON \ -DWITH_CUFFT=ON \ -DWITH_V4L=ON \ -DWITH_LIBV4L=ON \ -DWITH_OPENGL=ON \ -DWITH_FFMPEG=ON \ -DBUILD_EXAMPLES=ON \ -DINSTALL_PYTHON_EXAMPLES=ON \ -DINSTALL_C_EXAMPLES=ON \ -DCUDA_GENERATION=Auto \ -DCUDA_ARCH_BIN=6.1 \ -DCUDA_ARCH_PTX=6.1 \ -DPYTHON_EXECUTABLE=/usr/bin/python \ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \ -DPYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 \ -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \ -DPYTHON_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ .. $ make -j $(($(nproc) + 1)) $ sudo make install
安装OpenCV3.3.0:
同样首先应将OpenCV3.3.0_contrib-3.3.0放到opencv-3.3.0目录下,然后执行下面命令。$ cd opencv-3.3.0/ $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local/opencv3 \ -DOPENCV_EXTRA_MODULES_PATH=/home/bdd/opencv-3.3.0/opencv_contrib-3.3.0/modules \ -DWITH_TBB=ON \ -DWITH_QT=ON \ -DWITH_GTK=ON \ -DWITH_CUDA=ON \ -DWITH_CUBLAS=ON \ -DWITH_CUFFT=ON \ -DWITH_V4L=ON \ -DWITH_LIBV4L=ON \ -DWITH_OPENGL=ON \ -DWITH_FFMPEG=ON \ -DBUILD_EXAMPLES=ON \ -DINSTALL_PYTHON_EXAMPLES=ON \ -DINSTALL_C_EXAMPLES=ON \ -DCUDA_GENERATION=Auto \ -DCUDA_ARCH_BIN=6.1 \ -DCUDA_ARCH_PTX=6.1 \ -DPYTHON_EXECUTABLE=/usr/bin/python \ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \ -DPYTHON_INCLUDE_DIR2=/usr/include/x86_64-linux-gnu/python2.7 \ -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7.so \ -DPYTHON_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include/ .. $ make -j $(($(nproc) + 1)) $ sudo make install三、不同版本切换的方法:
不同版本的OpenCV编译好后,都会生成一个 OpenCVConfig.cmake,这个文件中指定了对应库函数和头文件的位置。在本教程的情况下,OpenCV2对应的OpenCVConfig.cmake在/usr/local/opencv2/share/OpenCV,OpenCV3对应的OpenCVConfig.cmake在/usr/local/opencv3/share/OpenCV。因此,如果要使用那个版本的OpenCV只需要将对应版本OpenCVConfig.cmake的路径写入CMakeLists.txt即可。这就是说,当自己所写的程序使用到OpenCV3时,在 FIND_PACKAGE( OpenCV REQUIRED ) 前,添加set(OpenCV_DIR “/usr/local/opencv3/share/OpenCV”) 这样计算机就找到OpenCV3的对应头文件和库文件了,如果使用OpenCV2,那么添加set(OpenCV_DIR “/usr/local/opencv2/share/OpenCV”)在FIND_PACKAGE( OpenCV REQUIRED ) 前就好。比如下面是一个使用OpenCV3的例子。CMAKE_MINIMUM_REQUIRED( VERSION 2.8) PROJECT(useOpenCV) set(OpenCV_DIR "/usr/local/opencv3/share/OpenCV") FIND_PACKAGE(OpenCV REQUIRED) INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS}) add_executable(useOpenCV useOpenCV.cpp) TARGET_LINK_LIBRARIES(useOpenCV ${OpenCV_LIBRARIES})
本系列文章为原创,转载请注明出处。
作者:Dongdong Bai
邮箱: baidongdong@nudt.edu
若您觉得本博文对您有帮助,请您为我点赞并关注我,以鼓励我写出更优秀的博文。谢谢!
相关文章推荐
- 关于ubuntu14.04下开启wifi给Android使用的方法
- Ubuntu14.04下Opencv2.4.13使用遇到的问题
- Ubuntu14.04下使用cmake实现多版本opencv管理
- Ubuntu14.04下Opencv2.4.9的安装及配置使用
- ubuntu14.04下 anaconda+python3.5+opencv3.1安装方法
- ubuntu下opencv使用cvNamedWindow()和cvShowImage()出错的解决方法
- NS2在Ubuntu14.04下使用时执行nam遇到Segment Fault (core dump)的解决方法
- ubuntu14.04下配置使用openCV3.0
- Ubuntu14.04下OpenCV3.4+contrib modules和OpenCV2.4.13的多版本共存
- 在ubuntu14.04下使用网页版qq的方法图文介绍
- Ubuntu14.04下Endpoint5.1的安装及使用方法
- ubuntu14.04下android Sdk manager使用代理方法总结
- ubuntu14.04下配置使用openCV3.0
- ubuntu14.04下配置opencv报错处理方法
- Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的实现方法
- Ubuntu14.04下使用QTcreator构建OpenCV工程
- ubuntu14.04下配置使用openCV3.0
- Ubuntu下OpenCV2和OpenCV3共存的方法
- ubuntu14.04下配置使用openCV3.0
- ubuntu 下mysql使用方法简介及mysql密码丢失的修复