ubuntu 14.04(trusty)下opencv2与opencv3切换

背景

  1. ubuntu 14.04下进行SLAM开发,使用ros indigo,而indigo默认的opencv版本为2.4.8
  2. 在高翔博士的《SLAM十四讲》中,需要用到viz模块,此处需要使用的opencv版本为3以上。
    因此需要在实际使用中切换opencv的版本。原则是opencv3不影响默认的opencv 2.4.8版本。

步骤

  1. 在安装时如果不小心用opencv3覆盖了原来的版本,首先用sudo make uninstall卸载,然后sudo apt-get install --reinstall libopencv-*,将原来的opencv 2.4重新安装覆盖一遍。可以通过pkg-config --modversion opencv命令来查看。

  2. 安装opencv3可参考以下链接:http://rodrigoberriel.com/2014/10/installing-opencv-3-0-0-on-ubuntu-14-04/
    注意,在cmake时要单独创建opencv3的路径,比如我的opencv g3.4.0创建的路径为CMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4.0而不是默认的/usr/local

  3. 在实际代码使用时,CMakeLists.txt的写法,此处基于高博士的imageBasics来给出一个例子:

cmake_minimum_required( VERSION 2.8 )

project( imageBasics )

# 添加c++ 11标准支持
set( CMAKE_CXX_FLAGS "-std=c++11" )

# 寻找OpenCV库
#find_package(OpenCV 2 REQUIRED) # 默认的库
find_package(OpenCV 3 REQUIRED PATHS "/usr/local/opencv-3.4.0/share/OpenCV") # 自己选择opencv 3

# 添加头文件
include_directories( ${OpenCV_INCLUDE_DIRS} )

#add_executable( imageBasics imageBasics.cpp )
## 链接OpenCV库
#target_link_libraries( imageBasics ${OpenCV_LIBS} )
  1. 在程序中查看OpenCV版本
#include <opencv2/core/version.hpp> 

cout << "OpenCV version: " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << endl; 

结果分别为:

OpenCV version: 2.4.8
OpenCV version: 3.4.0

备注:如果出现调用viz模块segment fault的情况时,cmake选项作修改:WITH_QT=OFF
参考:https://github.com/opencv/opencv/issues/4681

原文地址:https://www.cnblogs.com/severnvergil/p/8397884.html