ubuntu16.04下安装opencv-nonfree
在写计算机视觉与导航技术的课程作业,是关于sift和surf特征的提取及匹配。因为opencv中都有直接的函数可以调用。
关于SIFT和SURF的特征在opencv的nonfree模块中,从字面意思就可以知道“不免费”,美帝的专利意识还是挺强的。原因在于sift和surf这两种特征算法是已经在美国申请专利的。
默认安装opencv是没有安装nonfree模块的,需要额外安装。但实际上opencv2/nonfree/nonfree.hpp的头文件是有的,我估计是库文件没有安装。
当你调用nonfree模块时,会有以下报错
fatal error: opencv2/nonfree/nonfree.hpp: No such file or directory
使用nonfree模块,要在cmake中添加链接库:
首先查找链接库位置
find /usr -name libopencv_nonfree.so
在我的电脑中的位置为: /usr/local/opencv-2.4.9/lib/libopencv_nonfree.so
因此在CMakeLists.txt中添加一行
target_link_libraries( test.cpp /usr/local/opencv-2.4.9/lib/libopencv_nonfree.so)
对于opencv2.x版本,在ubuntu系统下还是挺好安装的。只需通过以下命令安装
sudo apt-get update sudo add-apt-repository --yes ppa:xqms/opencv-nonfree sudo apt-get update sudo apt-get install libopencv-nonfree-dev
对于opencv3.x版本
在opecv3.0中,SURF/SIFT 以及其它的一些东西被移动到了独立的库(opencv_contrib repo)中
具体可以参考博文
https://blog.csdn.net/zhounanzhaode/article/details/50302385