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")