ubuntu 16.04 安装了ROS kinetic,而ROS自带的是opencv3.1。之前很多程序都是opencv2,所以决定再装一个opencv2。
安装opencv2到指定路径
1.下载opencv2.4.13,链接为opencv sourceforge上的网页,自己选择合适的版本。
2.解压到指定文件夹,比如/home/hyj/opencv2.4.13
3.打开终端,切换到该文件集下,并创建文件夹如下:
cd /home/hyj/opencv2.4.13
mkdir release
cd release
mkdir installed
创建的installed文件集就是我们安装opencv2.4.13的路径。
4.使用cmake的时候指定opencv的安装路径,因为之前已经默认安装了opencv3,所以这里必须指定安装路径,比如我打算安装在刚刚创建的installed文件下。接着上面mkdir installed命令后,输入如下cmake 命令:
cmake -DCMAKE_INSTALL_PREFIX=/home/hyj/opencv-2.4.13/release/installed -DCMAKE_BUILD_TYPE="Rlease" ..
5.编译安装
make
make install
以上安装过程参考
http://code.litomisky.com/2014/03/09/how-to-have-multiple-versions-of-the-same-library-side-by-side/
同理安装opencv3.1
如果你电脑已经有了opencv2.4,想装一个opencv3,也要显式的指定安装路径,如下。
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/hyj/slam_Thirdparty/opencv-3.1.0/release/installed -D OPENCV_EXTRA_MODULES_PATH=/home/hyj/slam_Thirdparty/opencv_contrib-3.1.0/modules ..
使用多版本opencv
在写CmakeList.txt,如果只有一个版本的opencv,我们一般直接使用
FIND_PACKAGE(OpenCV required)
现在如果是使用默认安装的opencv3.1,则使用使用上面的指令就足够了。如果使用安装我们自己指定路径的opencv2.4.13,则在上面指令前面加上如下指令:
set(CMAKE_PREFIX_PATH "/home/hyj/opencv-2.4.13/release/installed/")
上述过程参考heroacool的csdn博客。