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

[C#][opencvsharp]opencvsharp sift和surf特征点匹配

SIFT特征和SURF特征比较 

SIFT特征基本介绍

SIFT(Scale-Invariant Feature Transform)特征检测关键特征:

  • 建立尺度空间,寻找极值
  • 关键点定位(寻找关键点准确位置与删除弱边缘)
  • 关键点方向指定
  • 关键点描述子

建立尺度空间,寻找极值

工作原理

构建图像高斯金字塔,求取DOG,发现最大与最小值在每一级

构建的高斯金字塔,每一层根据sigma的值不同,可以分为几个待级,最少有4个。

关键点定位
  • 我们在像素级别获得了极值点的位置,但是更准确的值应该在亚像素位置,如何得到--这个过程称为关键点(准确/精确)定位。
  • 删除弱边缘--通过Hassian矩阵特征值实现,小于阈值自动舍弃。
关键点方向指定
  • 求得每一层对应图像的梯度,根据给定的窗口大小
  • 计算每个高斯权重,sigma=scale*1.5, 0-360之间建立36个直方图Bins
  • 找最高峰对应的Bin,大于max*80%的都保留
  • 这样就实现了旋转不变性,提高了匹配时候的稳定性
  • 大约有15%的关键点会有多个方向
关键点描述子
  • 拟合多项式插值寻找最大Peak
  • 得到描述子 = 4*4*8=128

SURF效果演示:

SIFT效果演示:

【测试环境】

vs2019, netframework4.7.2,opencvhsarp4.8.0

【源码下载】

https://download.csdn.net/download/FL1623863129/88800068

相关文章:

  • lua只读表
  • Security ❀ TCP异常报文详解
  • 【JavaEE进阶】 图书管理系统开发日记——肆
  • git的分支的使用,创建分支,合并分支,删除分支,合并冲突,分支管理策略,bug分支,强制删除分支
  • 字面跳动前端面试题:React Hook为什么不能放在if/循环/嵌套函数里面?
  • js数组和字符串之间的转换方式以及数组的一些方法
  • 51单片机实验课二
  • 二、人工智能之提示工程(Prompt Engineering)
  • JAVA中枚举的方法
  • Java基础 集合(二)List详解
  • 【CSS + ElementUI】更改 el-carousel 指示器样式且隐藏左右箭头
  • Qt应用软件【数据篇】大小端数据转换
  • Linux进程信号处理:深入理解与应用(2​​)
  • 【Tomcat与网络6】 Tomcat是如何扩展Java线程池的?
  • Python flask 模板详解
  • 【笔记】你不知道的JS读书笔记——Promise
  • Android Studio:GIT提交项目到远程仓库
  • CSS3 变换
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • iOS 系统授权开发
  • Java比较器对数组,集合排序
  • PHP的Ev教程三(Periodic watcher)
  • 关于extract.autodesk.io的一些说明
  • 手写一个CommonJS打包工具(一)
  • 通过npm或yarn自动生成vue组件
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • puppet连载22:define用法
  • ​MySQL主从复制一致性检测
  • ​力扣解法汇总946-验证栈序列
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (52)只出现一次的数字III
  • (a /b)*c的值
  • (C++)八皇后问题
  • (C语言)逆序输出字符串
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)VC++中ondraw在什么时候调用的
  • (转)我也是一只IT小小鸟
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET delegate 委托 、 Event 事件
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET 服务 ServiceController
  • .NET 药厂业务系统 CPU爆高分析
  • @Async注解的坑,小心
  • [14]内置对象
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [Angular] 笔记 6:ngStyle
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C++]类和对象【上篇】
  • [hdu2196]Computer树的直径
  • [iOS]随机生成UUID通用唯一识别码