问题描述:首先在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)