[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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot RestTemplate 设置挡板

项目结构 代码 BaffleConfig /*** Description 记录配置信息* Author wjx* Date 2024/2/1 14:47**/ public interface BaffleConfig {// 是否开启挡板的开关public static boolean SWITCH true;// 文件根目录public static String ROOT_PATH "D:\\TIS\\mock";// …

最新2024如何解决谷歌浏览器Chrome谷歌翻译无法使用问题

快速恢复谷歌浏览器一键翻译功能在Chrome 中安装好【翻译】插件 Macbook 操作步骤: 1点击“前往”,打开“前往文件夹” 2 在对话框中输入“/etc” 囝找到“hosts”文件,复制粘贴到桌面 3 在复制的文件最后新起一行,输入并保存&am…

VUE3+TS使用OpenSeadragon学习之旅,实现多图片切换效果

1.官方网站&#xff1a;OpenSeadragon 2.使用npm下载插件&#xff1a;npm install openseadragon 3.在 index.html文件引入资源 <link rel"stylesheet" href"node_modules/openseadragon/build/openseadragon/openseadragon.css" /><script src…

消息队列的应用场景

消息队列的应用场景 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ&#xff0c;RabbitMQ&#xff0c;Ze…

用户界面(UI)、用户体验(UE)和用户体验(UX)的差异

对一个应用程序而言&#xff0c;UX/UE (user experience) 设计和 UI (user interface) 设计非常重要。UX设计包括可视化布局、信息结构、可用性、图形、互动等多个方面。UI设计也属于UX范畴。正是因为三者在一定程度上具有重叠的工作内容&#xff0c;很多从业多年的设计师都分不…

ffmpeg合成mp3音频,解决音频属性不一致问题

1. 需求&#xff0c;amr转成mp3&#xff0c;再将此mp3和其他mp3合成 2. 问题&#xff1a;拼接后的第一段音频可以播放&#xff0c;第二段自动跳过&#xff0c;无法播放。 3. 解决&#xff1a; 3.1 查看各文件属性 # 查看amr转为mp3文件的属性&#xff1a;ffprobe 文件名&am…

嵌入式软件工程师面试题——2025校招社招通用(C/C++)(五十一)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…

C语言实现12种排序算法

1.冒泡排序 思路&#xff1a;比较相邻的两个数字&#xff0c;如果前一个数字大&#xff0c;那么就交换两个数字&#xff0c;直到有序。 时间复杂度&#xff1a;O(n^2)&#xff0c;稳定性&#xff1a;这是一种稳定的算法。 代码实现&#xff1a; void bubble_sort(int arr[],…

Redis的bitmap使用不当,我内存爆了

背景 最近发现Redis的内存持续暴涨&#xff0c; 涨的有点吓人&#xff0c;机器都快扛不住了&#xff0c;不得不进行Redis内存可视化分析&#xff0c;发现大量的String类型的大key 经分析&#xff0c;最近上线了页面UV的统计&#xff0c;那目前如何做的呢&#xff1f; 通过访…

Redux状态管理(运行机制及实例)

背景&#xff1a; JavaScript需要管理的状态越来越多&#xff0c;越来越复杂;这些状态包括服务器返回的数据、缓存数据、用户操作产生的数据等等&#xff0c;也包括一些UI的状态&#xff0c;比如某些元素是否被选中&#xff0c;是否显示加载动效&#xff0c;当前分页。 状态之…

浅谈信号完整性分析

什么是信号完整性?在过去的低速时代,电平跳变时信号上升时间较长,通常几个 ns。器件间的互连线不至于影响电路的功能,没必要关心信号完整性问题。但在今天的高速时代,随着 IC输出开关速度的提高,很多都在皮秒级,不管信号周期如何,几乎所有设计都遇到了信号完整性问题。…

【ACL 2023】Enhancing Document-level EAE with Contextual Clues and Role Relevance

【ACL 2023】Enhancing Document-level Event Argument Extraction with Contextual Clues and Role Relevance 论文&#xff1a;https://aclanthology.org/2023.findings-acl.817/ 代码&#xff1a;https://github.com/LWL-cpu/SCPRG-master Abstract 与句子级推理相比&…

ZigBee学习——在官方例程基础实现点灯

IAR版本 :10.10.1 Z-stack版本 :3.0.2 文章目录 一、买的板子原理图二、实现过程2.1 重定义LED的物理映射(HAL层)2.2 创建LED事件(应用层)2.2.1 定义用户事件2.2.2 修改zclGenericApp_event_loop() 2.3 触发事件 一、买的板子原理图 二、实现过程 2.1 重定义LED的物理映射(HAL…

服务攻防-端口协议桌面应用QQWPS等RCEhydra口令猜解未授权检测

知识点&#xff1a; 1、端口协议-弱口令&未授权&攻击方式等 2、桌面应用-社交类&文档类&工具类等 章节点&#xff1a; 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间件&…

使用Logstash将MySQL中的数据同步至Elasticsearch

目录 1 使用docker安装ELK 1.1 安装Elasticsearch 1.2 安装Kibana 1.3 安装Logstash 2 数据同步 2.1 准备MySQL表和数据 2.2 运行Logstash 2.3 测试 3 Logstash报错(踩坑)记录 3.1 记录一 3.1.1 报错信息 3.1.2 报错原因 3.1.3 解决方案 3.2 记录二 3.2.1 报错信…

图像异或加密、解密的实现

很多论文提到了从左上角开始做异或,逐行推导得到结果。 解密过程是加密的逆过程。 先看其基本方法: 参考文献: A Chaotic System Based Image Encryption Scheme with Identical Encryption and Decryption Algorithm 大多数论文都用了这个思路,我们使用MATLAB实现代码…

Leetcode 热门百题斩(第一天)

介绍 针对leetcode的热门一百题&#xff0c;解决大多数实习生面试的基本算法题。通过我自己的思路和多种方法&#xff0c;供大家参考。 1.两数之和&#xff08;题号&#xff1a;1) 方法一 最先想到的就是两个for去遍历匹配。 class Solution {public int[] twoSum(int[]…

重写Sylar基于协程的服务器(2、配置模块的设计)

重写Sylar基于协程的服务器&#xff08;2、配置模块的设计&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器&#xff08;1、日志模…

vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.

vue3使用is动态切换组件&#xff0c;activeComponent用ref定义报错 Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with markRaw or using shallowRef ins…

cesium 多边形渐变颜色

cesium画一个渐变颜色的多边形 方式一&#xff1a;用一张颜色渐变的图片作为材质&#xff0c;结合color属性&#xff0c;可设置多边形的颜色&#xff0c;达到渐变效果。图片指向正北方向。 viewer.entities.add({polygon: {hierarchy: Cesium.Cartesian3.fromDegreesArray([115…