因为opencv3.1.0默认安装中没有加入SIFT、SURF等点特征检测,这玩意还弄了个其他的库,还只能在GitHub上才能弄到,这两天弄opencv3.1.0的contrib库,遇到了一些问题,为了让大家更好、更快用上contrib库,根据谷歌百度的几个问题,现分享给大家完整流程,也欢迎大家与我讨论其他opencv方面的问题。
opencv_contrib的版本一定要与opencv的版本一致。
1. 首先进入到之前opecnv编译的build目录。$ cd ~/opecnv/build/
我的目录是这个,根据自己情况调整。
2. 然后进场cmake。$ cmake -DOPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules/ ~/opencv/
这里需要输入2个目录,第一个是opecnv_contrib下的modules,第二个是opencv的源目录。
3. 最后就进行make -j8 就行了。正常情况就可以完成编译。
对几个问题着重提一下:
错误1:
在make时出现 opencv2/xfeatures2d/cuda.hpp:No such file or directory。也不知道为什么,在目录opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/目录下有cude.hpp,但是还是提示文件不存在。最后找到了了与opencv3.1匹配的opencv_contrib3.1,进行安装,成功。
错误2:
Call Stack (most recent call first):
H:/OpenCV/opencv_contrib-master/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake:32 (ocv_download)
H:/OpenCV/opencv_contrib-master/modules/dnn/CMakeLists.txt:5 (include)
在用cmake编译opencv3.1以及配套的opencv_contrib模块的时候,遇到了以上错误,使用PACKAGE替换相对于错误地方.cmake文件中的FILENAME。下面第二个链接有具体修改方法。
错误3:
CMake Error at opencv/opencv_contrib-master/modules/text/CMakeLists.txt:22 (ocv_add_testdata):
Unknown CMake command "ocv_add_testdata".
Just comment these line no 22,23,24 from CMakeLists.txt (去掉注释掉22,23,24行)
http://www.itdadao.com/articles/c15a1329192p0.html
http://blog.csdn.net/qsy2000/article/details/70158537
https://github.com/opencv/opencv_contrib/issues/894
http://www.linuxdiyf.com/linux/19217.html (网站名都是小写,要不然打不开)