Ubuntu下在openCV3.2中配置opencv_contrib,然后使用SURF算子
2017-10-02 20:54
513 查看
最近用openCV3.2,发现无法使用SURF做特征点的检测。百度了一下,发现了是这样解释的。
“图像识别中的特征点检测中,需要用到Surf和Sift算法,但是这两个算法在OpenCV 3.2的Release版本中并不存在,因为他们是存放在opencv_contrib目录下面的未稳定功能模块”。
安装好openCV_contrib用了我一下午时间,才让代码在openCVC3.2的环境下编译通过,这里分享下我的方法。
我配置的前提是我的电脑已经配置好了oepnCV3.2,这个时候就要下一个和openCV3.2相匹配的openCV_contribe文件。也就是pencv_contrib的版本一定要与opencv的版本一致,这是顺利安装的前提,一定注意。
下载地址:我没保存,后面补上
下面说说我的安装流程:
1.第一步:
打开openCV3.2的build目录。
比如根据我的openCV安装目录是这样的
第二步:cmake,一般Ubuntu都会安装,如果想确定自己安装没有,直接在控制台输入:cmake,就会显示Cmake的所有信息。
下面看看命令
注意上面有两个~,每一个后面跟了一个路径,第一个是opecnv_contrib下的modules,第二个是opencv的源目录。
比如根据我的系统里面的安装路径:
就是这样的
这里我没有用~,~ 即用户家目录 /home/username,我的家目录就是/home/dx。
再次强调contrib和openCV版本好应该一致,否则这里报错。
第三步:
具体我也不知道具体意思
第四步:
经过这几部,我的contrib就配置好了。
参考链接:http://blog.csdn.net/lemianli/article/details/73614453
http://blog.csdn.net/CupidYzw97/article/details/74857467
下面在说说怎么使用SURF,这个和openCV2.X中有不同:
使用格式为:
可能这样后,编译还是会报SURF的一些错误,
我看了这篇博客后:http://blog.csdn.net/qq_22033759/article/details/48413657
在代码里加了
就可以顺利编译了。
好了,继续调后面的代码了,国庆节第二天一下午就用来折腾这个了,宝宝心里苦啊。
果然还有问题,编译通过了,运行找不到lib,错误如下
也就是找不到error while loading shared libraries: libopencv_xfeatures2d.so.3.2。
主要是要重新配置openCV环境变量的问题。
然后下面说说怎么解决,直接参考这篇博客,很详细。
http://blog.csdn.net/cv_you/article/details/77341631
,
“图像识别中的特征点检测中,需要用到Surf和Sift算法,但是这两个算法在OpenCV 3.2的Release版本中并不存在,因为他们是存放在opencv_contrib目录下面的未稳定功能模块”。
安装好openCV_contrib用了我一下午时间,才让代码在openCVC3.2的环境下编译通过,这里分享下我的方法。
我配置的前提是我的电脑已经配置好了oepnCV3.2,这个时候就要下一个和openCV3.2相匹配的openCV_contribe文件。也就是pencv_contrib的版本一定要与opencv的版本一致,这是顺利安装的前提,一定注意。
下载地址:我没保存,后面补上
下面说说我的安装流程:
1.第一步:
打开openCV3.2的build目录。
比如根据我的openCV安装目录是这样的
cd /home/dx/opencv3.2/opencv-3.2.0/build
第二步:cmake,一般Ubuntu都会安装,如果想确定自己安装没有,直接在控制台输入:cmake,就会显示Cmake的所有信息。
下面看看命令
$ cmake -DOPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules/ ~/opencv/
注意上面有两个~,每一个后面跟了一个路径,第一个是opecnv_contrib下的modules,第二个是opencv的源目录。
比如根据我的系统里面的安装路径:
就是这样的
$ cmake -DOPENCV_EXTRA_MODULES_PATH=/home/dx/Downloads/opencv_contrib-3.2.0/modules /home/dx/opencv3.2/opencv-3.2.0
这里我没有用~,~ 即用户家目录 /home/username,我的家目录就是/home/dx。
再次强调contrib和openCV版本好应该一致,否则这里报错。
第三步:
make -j8
具体我也不知道具体意思
第四步:
sudo make install
经过这几部,我的contrib就配置好了。
参考链接:http://blog.csdn.net/lemianli/article/details/73614453
http://blog.csdn.net/CupidYzw97/article/details/74857467
下面在说说怎么使用SURF,这个和openCV2.X中有不同:
使用格式为:
Ptr<SURF> detector = SURF::create(minHessian); detector->detect(img_1, keypoints_1); Ptr<SURF> extractor = SURF::create(); extractor->compute(img_1, keypoints_1, descriptors_1); Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("BruteForce"); matcher->match(descriptors_1, descriptors_2, matches);
可能这样后,编译还是会报SURF的一些错误,
我看了这篇博客后:http://blog.csdn.net/qq_22033759/article/details/48413657
在代码里加了
using namespace cv:xfeatures2d;
就可以顺利编译了。
好了,继续调后面的代码了,国庆节第二天一下午就用来折腾这个了,宝宝心里苦啊。
果然还有问题,编译通过了,运行找不到lib,错误如下
也就是找不到error while loading shared libraries: libopencv_xfeatures2d.so.3.2。
主要是要重新配置openCV环境变量的问题。
然后下面说说怎么解决,直接参考这篇博客,很详细。
http://blog.csdn.net/cv_you/article/details/77341631
,
相关文章推荐
- OpenCV3.2+Qt5.8.0+Win10配置和使用----(4)配置环境变量+编译opencv&amp;amp;amp;opencv-contrib
- 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)
- Ubuntu14.04 64位 + OpenCV3.1 + opencv_contrib配置总结
- ubuntu16.04 opencv3.2 sun jdk1.8配置教程
- ubuntu中卸载opencv2,安装opencv3.2.0和contrib组件,并使用python进行开发
- Ubuntu下使用qt开发opencv的配置
- ubuntu14.04下配置使用openCV3.0
- Ubuntu/Linux编译Opencv3.2(包括使用)//有问题欢迎留言交流
- ubuntu14.04 + GTX980ti + cuda 8.0 ---Opencv3.1.0(基础+opecv_contrib)配置
- ubuntu16.04下 配置cuda 装opencv 3.2 一些小tip
- ubuntu17.04配置opencv3.20(包括contrib)(支持C++,Python3)
- 笔记4 :Ubuntu下 Qt配置使用Opencv2.4.3
- ubuntu14.04环境下安装配置OpenCV3.2+anaconda2(Python2.7)
- opencv3.2——小试牛刀(1):使用鼠标选择ROI进行SURF匹配
- 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)
- Opencv3.1.0+opencv_contrib配置及使用SIFT测试
- 使用CMake 2.8 编译OpenCV 3.1.0 + opencv_contrib扩展 (环境ubuntu14.04 CUDA8.0)
- ubuntu14.04下配置使用openCV3.0
- Linux-ubuntu16.04 Python3.5配置OpenCV3.2
- ubuntu14.04下配置使用openCV3.0