折腾这么一天天终于能用了,在linux装这些库太复杂了,可能是自己不了解的缘故吧。

  1. 安装opencv-contrib
    下载3.4版本的opencv-contrib,具体的配置我参照了这篇文章,遇到的问题是经常cmake成功但是在make的环节报错,百度之后发现和gcc的版本有一定的关系,所以选择把PRECOMPILED_HEADERS设置成OFF进行cmake。

    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local  -D ENABLE_PRECOMPILED_HEADERS=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/roy/opencv_contrib/modules/ ..

    make的过程经常出错而且速度非常慢,看代码发现有的权限不够,故试用指令

    sudo make

    make成功且速度很快。

  2. 无法在QT使用SURF相关函数的解决方法
    好不容易make成功了,但是在使用时还是出错,原来在opencv3以上的版本中已经不适用2.4的调用方法,感谢这篇文章的代码启发。
  3. 头文件的引用问题
    头文件的引用已经移动到xfeature2d文件夹之下,不再是nonfree文件夹

    #include <opencv2/xfeatures2d/nonfree.hpp>  

    调用新格式的SURF需要再加一行引用

    using namespace cv::xfeatures2d;
  4. SURF并不能直接用
    Ptr<SURF> surfDetector=SURF::create(800);//使用出错
    Ptr<SurfFeatureDetector> detector = SurfFeatureDetector::create(800);//可以实现
    

    调用结构体成员时不能用(.)而是用(->)

    detector.detectAndCompute(srcImage1, Mat(), key_points_1, dstImage1);//出错
    
    detector->detectAndCompute(srcImage1, Mat(), key_points_1, dstImage1);//可以实现

    有点蒙逼,和c++有关吧...

    走过的弯路:

    • 终端权限的问题,总是忘记加上sudo
    • 一直想把nonfree手动cmake到库,但其实没必要,只是引用的方法改动了,没必要再编译

Opencv3.4中使用SURF等算法使用错误的解决方法相关推荐

  1. php判断是字符串类型,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...

    本文实例讲述了php使用strpos判断字符串中数字类型子字符串出错的解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近的开发中在程序代码里有一个随机数是否在给定字符串里的判断,我用了如下的 ...

  2. edittext 监听无效_Android中EditText 设置 imeOptions 无效问题的解决方法

    有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Androi ...

  3. opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类

    opengl中的Floatbuffer和IntBuffer与java中数据的存储方式不同的解决方法,编辑一个自己的BufferUtil工具类 参考文章: (1)opengl中的Floatbuffer和 ...

  4. js中hover事件时候的BUG以及解决方法

    js中hover事件时候的BUG以及解决方法 参考文章: (1)js中hover事件时候的BUG以及解决方法 (2)https://www.cnblogs.com/mmykdbc/p/7464050. ...

  5. 手机端网页中图片之间出现白线的解决方法

    手机端网页中图片之间出现白线的解决方法 参考文章: (1)手机端网页中图片之间出现白线的解决方法 (2)https://www.cnblogs.com/syzdidi/p/9686463.html 备 ...

  6. Json返回时间中出现乱码问题的两种解决方法

    Json返回时间中出现乱码问题的两种解决方法 参考文章: (1)Json返回时间中出现乱码问题的两种解决方法 (2)https://www.cnblogs.com/hanyinglong/archiv ...

  7. ubuntu中wifi显示被硬件禁用的解决方法

    ubuntu中wifi显示被硬件禁用的解决方法 参考文章: (1)ubuntu中wifi显示被硬件禁用的解决方法 (2)https://www.cnblogs.com/houji/p/7643443. ...

  8. PHP开发中常见的安全问题详解和解决方法

    PHP开发中常见的安全问题详解和解决方法 参考文章: (1)PHP开发中常见的安全问题详解和解决方法 (2)https://www.cnblogs.com/walblog/articles/83313 ...

  9. vue php跨域,Vue 项目中遇到的跨域问题及解决方法(后台php)

    问题描述 前端 vue 框架,后台 php,百度跨域问题后台加这段代码 header("Access-Control-Allow-Origin: *"); 加了之后报这个错: Th ...

最新文章

  1. 智能算法的应用记录一点点-----TSP 路径规划
  2. Table嵌套去掉子table的外边框
  3. jvm性能调优 - 08什么情况下对象会被GC
  4. Tomcat Filter 自己动手实现
  5. Clean Code第三章函数
  6. 4000字,25张精美交互图表,开启Plotly Express之旅!
  7. EIGRP单边邻居——认证
  8. windows中端口号被占用的解决方法
  9. 四、物理优化(6)数据库引擎优化顾问
  10. 关于空间计量模型中自回归系数大于1的解释
  11. 虚拟机安装win10 64/32bit系统
  12. c语言中地址值是什么意思,单片机C语言中如何区别是地址还是数值啊?
  13. 大屏互动-大屏交互-大屏投影技术解决方案
  14. 【模拟电路】431基准电压源
  15. SQL全称量词使用存在量词替代
  16. 什么是双因素身份认证?
  17. 深度学习实验总结:PR-曲线、线性回归、卷积神经网络、GAN生成式对抗神经网络
  18. 小鹏G3 XPilot ---APA自动泊车系统
  19. Qt如何改变鼠标形状
  20. php怎么用xampp打开,xampp教程(一):xampp下载,安装,配置,运行PHP的web项目

热门文章

  1. Linux命令中的箭头符号总结
  2. Python3网络爬虫实战-38、动态渲染页面抓取:Splash的使用
  3. 咕咚已上传服务器怎到不丁微信,微信运动怎样使用咕咚数据?
  4. ECCV 2022 | 适用于分类,检测,分割的生成式知识蒸馏开源
  5. 海通股票交易系统通道接口错误怎么办
  6. UML类图示例一张:公司结构
  7. matlab安装c盘吗,matlab的安装步骤(附winC盘“用户”文件夹下账户名的更改方法).doc...
  8. JQuery 基础知识学习(详尽版)
  9. mac下重启mysql
  10. XMind 8 Update 8 Pro 激活教程(亲测可用) 国外官网下载 破解教程(带离线安装包)