Ubuntu14.04 opencv2.4.8和opencv3.1.0共存

来源:互联网 发布:松下程控交换机软件 编辑:程序博客网 时间:2024/06/06 20:23

opencv是一个很方便的开源库,在学习中也经常用到,但是2和3两者的兼容性做的很好,所以有时需要同时装上2和3,在装ros的时候电脑自动装上了2版本,如果没有直接通过:sudo apt-get install libopencv-dev可以直接安装(没有试过尴尬

因为要跑gms,而这是依赖的3版本,所以现在源码编译一下3~


opencv3.1.0编译安装

1.下载opencv,直接去官网下就好了,选择自己喜欢的版本

2.解压后进入文件夹,修改CMakeList.txt。

set(CMAKE_INSTALL_PREFIX "/你/自己/的/路径" CACHE PATH "Installation Directory")(总之不要放在默认的地方就好啦!)

3.mkdir build

   cd build

  cmake ..

  make

  sudo make install

如果一切没问题,恭喜你安装成功,不过一般都会有问题的啦!

1.ippic_linux_20151201.tgz这个文件很容易出现下载速度很慢,然后cmake挂掉,可以手动下载后放入opencv-3.1.0/3rdparty/ippicv/downloads/linux-80xx(省略一串数字字母):

https://raw.githubusercontent.com/Itseez/opencv_3rdparty/81a676001ca8075ada498583e4166079e5744668/ippicv/ippicv_linux_20151201.tgz

2.编译过程中出现

/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared     typedef NppStatus (*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat                                                      

解决方案:gedit /home/你的路径/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp

                   将#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)替换为

                     #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

此处参考http://blog.csdn.net/allyli0022/article/details/62859290

opencv的调用

如果要用opencv2的话直接按之前的find_package( OpenCV REQUIRED )就可以啦!

如果要使用opencv3的话需要加上set(OpenCV_DIR "/你/自己/的/路径/share/OpenCV")