ubuntu16.04上的OpenCV多版本共存

问题描述:首先在Ubuntu16.04上配置了最新的OpenCV3.4.0,但是之后由于要使用某一些SDK ROS,要求的OpenCV的版本是2.x。但是把之前的OpenCV3.4.0卸载掉不明智,所以就有了下面的这些操作。

1、可以使用命令查看一下ubuntu上的OpenCV当前的版本

pkg-config --modversion opencv

在/usr/local/bin、/usr/local/include两个文件夹中可以看到opencv3.4.0的相关文件。

2、下载opencv的安装包,我下的是opencv2.4.11。然后安装依赖项

sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev

3、在/usr/local下面生成一个opencv2411来安装存放opencv2.4.11的安装文件

mkdir -p /usr/local/opencv2411

4、进入解压后的opencv压缩包

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2411 ..
make
sudo make install

到这里,opencv的安装结束了。现在电脑上安装了两个版本的OpenCV,需要做一些配置。

5、修改bashrc文件来设置PKG_CONFIG_PATH

sudo gedit ~/.bashrc

在文件末尾加上下面两行:

export PKG_CONFIG_PATH=/usr/local/opencv2411/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv2411/lib

保存之后,source一下(不进行source也可以,重新开一个终端):

source ~/.bashrc

查看opencv的版本已经是2.4.11的了:

pkg-config --modversion opencv

6、OpenCV3.4.0和OpenCV2.4.11使用的切换方法

我使用的是cmake工具,在CMakeLists.txt中加入下面几行即可使用OpenCV2.4.11:

set(OpenCV_DIR /usr/local/opencv2411/share/OpenCV)
find_package(OpenCV 2.4 REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS} /usr/local/opencv2411/include)

如果想使用OpenCV3.4.0(一开始安装的就是这个)时,将上面的三行中的第1行和第3行去掉,然后将第2行改为即可。

find_package(OpenCV REQUIRED)

猜你喜欢

转载自blog.csdn.net/llfjcmx/article/details/81238766