ubuntu安装opencv+多版本切换+opencv_contrib模块安装

笔者的系统是ubuntu14,之前安装的是opencv3.1.0,但是后来在装ROS的时候,ros-indigo-destop-full顺便安装了版本2.4.8的opencv,因为ROS里面的一些文件需要依赖于该版本的opencv,例如cv_bridge和image_pipeline。但是我查的系统是的opencv的版本是opencv3.1.0,之后无奈把opencv3.1.0卸掉了。查看opencv版本可以通过以下命令:

pkg-config --modversion opencv

现在,想要把opencv3.1.0安装回来,并且满足2.4.8和3.1.0自由切换的需求。

首先,给出opencv下载地址。

下载完之后,解压,在终端安装依赖项:

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev

然后在解压后的文件下新建build文件,并且进入这个目录下。指令:

mkdir build
cd build

在/usr/local下新建文件夹opencv310,这个文件夹就是opencv的安装目录,然后cmake生成make文件并安装:

mkdir -r /usr/local/opencv310 
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv310 .. 
make install 

如果一切正常的话,这时候的opencv310版本就好了。但是用指令查看opencv版本,这时候的版本仍是2.4.8。

版本切换:

紧接着需要配置下文件,通过修改bashrc文件来设置PKG_ CONFIG_PATH和LD_LIBRARY_PATH。打开bashrc文件指令:

gedit ~/.bashrc

因为之前安装了opencv2的版本,需要在~/.bashrc中添加

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

保存之后,再使用命令:

source ~/.bashrc 

到此,可以查知这时候的版本是3.1.0。

当要使用opencv3.1.0的时候,只需要在CMakeLists.txt中加入路径即可使用。

set(OpenCV_DIR "/usr/local/opencv310/share/OpenCV")
find_package( OpenCV 3.1 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} "/usr/local/opencv310/include")

如果还想使用原来的opencv-2.4.8,只需要再修改PKG_CONFIG_PATH为opencv-2.4.8的pkgconfig路径即可。

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

可以查知这时候的版本是2.4.8。

在CMakeLists.txt中将find_package(OpenCV 3.1 REQUIRED )换成find_package(OpenCV REQUIRED )即可,并将该代码上面一行和下面俩行删除即可:

find_package(OpenCV  REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )

opencv_contrib模块安装:

据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边。但是这里边有很多我们经常要用的算法,比如SIFT,SURF等(在xfeatures2d 模块里边)。官网提供了说明,可以把opencv_contrib扩展模块添加编译到已安装的opencv3.0.0里边,也可以安装的时候直接把扩展模块编译进去一并安装。

首先,提供opencv_contrib下载地址

解压后将文件放在opencv源文件下。然后进入源文件下之前安装opencv时建立的build。

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv310 -D OPENCV_EXTRA_MODULES_PATH= ..

OPENCV_EXTRA_MODULES_PATH 这个路径就是到你解压后的opencv_contrib的路径。

最后,make+make install即可。

你可能感兴趣的:(ubuntu安装opencv+多版本切换+opencv_contrib模块安装)