当前位置: 首页 > news >正文

opencv3.0.1 中的SurfFeaturesFinderGpu类的问题.

最近需要实现一下图像配准的功能, 参考了一下opencv中的实现,发现几个问题, SurfFeaturesFinderGpu在找特征点的过程中会抛出异常,改了一下代码,可以运行了.

void SurfFeaturesFinderGpu::find(InputArray image, ImageFeatures &features)
{
    CV_Assert(image.depth() == CV_8U);
    Mat imageGray;

    /*## xie debug*/
#if 1
    ensureSizeIsEnough(image.size(), image.type(), image_);    
    image_.upload(image);
    cvtColor(image, imageGray, COLOR_BGR2GRAY);
    ensureSizeIsEnough(imageGray.size(), imageGray.type(), gray_image_);
    gray_image_.upload(imageGray);    
#else
    ensureSizeIsEnough(image.size(), image.type(), image_);
    image_.upload(image);

    ensureSizeIsEnough(image.size(), CV_8UC1, gray_image_);
    cvtColor(image_, gray_image_, COLOR_BGR2GRAY);
#endif

问题是,用这个CUDA的finder .   结果消耗的时间比不用CUDA要多出几个数量级

下面是不用CUDA的性能数据:

使用了CUDA以后:

寻找特征点的过程从耗时2.42秒升级到231秒.   希望OPENCV的作者可以将这个算法的性能进行改进. 

转载于:https://www.cnblogs.com/enigma19971/p/5723413.html

相关文章:

  • 形态学边界提取
  • out传值
  • 从0-1体验大数据开发
  • Android控件-单选按钮RadioButton
  • 2016 Multi-University Training Contest 5 1012 World is Exploding 树状数组+离线化
  • Linux上分析java程序的问题
  • OC点语法和变量作用域
  • Docker个人学习总结
  • Java NIO 系列教程 转
  • git常用命令以及速查命令
  • 数字电路基础(网络整理)
  • Vue.js学习笔记(4)
  • mysql数据库权限及编码
  • web前端之HTML的前世今生
  • Could not find or load main class org.gradle.wrapper.GradleWrapperMain解决办法
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • CentOS6 编译安装 redis-3.2.3
  • golang 发送GET和POST示例
  • HTTP请求重发
  • JavaScript-Array类型
  • java中具有继承关系的类及其对象初始化顺序
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • tab.js分享及浏览器兼容性问题汇总
  • Terraform入门 - 1. 安装Terraform
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 无服务器化是企业 IT 架构的未来吗?
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 终端用户监控:真实用户监控还是模拟监控?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 回归生活:清理微信公众号
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (AngularJS)Angular 控制器之间通信初探
  • (rabbitmq的高级特性)消息可靠性
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net 受管制代码
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .netcore 获取appsettings
  • .NET序列化 serializable,反序列化
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .Net中的设计模式——Factory Method模式
  • /usr/bin/env: node: No such file or directory
  • @Autowired @Resource @Qualifier的区别
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • []指针
  • [30期] 我的学习方法