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

<图像处理> Fast角点检测

Fast角点检测

基本原理是使用圆周长为N个像素的圆来判定其圆心像素P是否为角点,如下图所示为圆周长为16个像素的圆(半径为3);OpenCV还提供圆周长为12和8个像素的圆来检测角点。
在这里插入图片描述

相对中心像素的位置信息

//圆周长为16
static const int offsets16[][2] =
{{0,  3}, { 1,  3}, { 2,  2}, { 3,  1}, { 3, 0}, { 3, -1}, { 2, -2}, { 1, -3},{0, -3}, {-1, -3}, {-2, -2}, {-3, -1}, {-3, 0}, {-3,  1}, {-2,  2}, {-1,  3}
};//圆周长为12
static const int offsets12[][2] =
{{0,  2}, { 1,  2}, { 2,  1}, { 2, 0}, { 2, -1}, { 1, -2},{0, -2}, {-1, -2}, {-2, -1}, {-2, 0}, {-2,  1}, {-1,  2}
};//圆周长为8
static const int offsets8[][2] =
{{0,  1}, { 1,  1}, { 1, 0}, { 1, -1},{0, -1}, {-1, -1}, {-1, 0}, {-1,  1}
};

角点判定条件

在圆周上顺时针从顺时针方向从1到N的顺序对圆周像素点进行连续编号。如果在圆周上有M个连续的像素的亮度都比圆心像素的亮度还要亮,或者比圆心像素的亮度还要暗,并且亮度差都大于设置的阈值t,则圆心像素被确定为角点。因此,成为角点必须满足下列两个条件之一。

  • 条件1:集合S由圆周上M个连续的像素x组成,该集合的任意像素x都满足 I x > I p + t I_x>I_p+t Ix>Ip+t
  • 条件2:集合S由圆周上M个连续的像素x组成,该集合的任意像素x都满足 I x < I p − t I_x<I_p-t Ix<Ipt

在OpenCV中有三种模式,如下:

  • TYPE_9_16,表示圆周上16个像素点/连续9个像素点满足条件
  • TYPE_7_12,表示圆周上12个像素点/连续7个像素点满足条件
  • TYPE_5_8,表示圆周上8个像素点/连续5个像素点满足条件

非角点检测

在一副图像中,非角点往往是占多数。而非角点检测比角点检测容易很多,因此首先剔除非角点将大大提高角点检测速度。例如,当圆周长N为16个像素,连续像素M为12,所以编号为1,5,9,13的这4个圆周像素点中应该至少有3个满足条件。在OpenCV中,采用了另一种方法来判断非角点,即同时检测任意直径上两个端点像素的像素值。

非极大值抑制

如果N一定,我们把使P仍然是角点的最大阈值 t t t定义为P的角点响应值,通过迭代,每次迭代比较8个连续的圆周像素与圆心像素之间的绝对差值,得到8个绝对差值中的最小值 d d d,与这8个连续像素两端相邻的两个圆周像素与圆心像素的绝对差值分别为 d 0 d_0 d0 d 9 d_9 d9,则此次迭代所得到的角点响应值 v i v_i vi
v i = m a x ( t , m i n ( d , d 0 ) , m i n ( d , d 9 ) ) v_i=max(t,min(d,d_0),min(d,d_9)) vi=max(t,min(d,d0),min(d,d9))
16个圆周像素需要迭代16次,则最终的角点响应值V为:
V = m a x ( v i ) V=max(v_i) V=max(vi)
角点响应 V V V得到后,需要在 3 ∗ 3 3*3 33的邻域内比较 V V V,只保留那些比其8邻域都大的像素作为最终的角点。非角点的响应值定义为0。

Fast角点检测步骤

  1. 对被检测像素的16个圆周像素的部分像素点进行非角点检测;
  2. 如果初步判断为角点,则对圆周上的全部像素进行角点检测;
  3. 对角点进行非极大值抑制,最终得到角点;

OpenCV函数

void cv::FAST(InputArray image, std::vector<KeyPoint>& keypoints, int threshold, bool nonmaxSuppression = true)	void cv::FAST(InputArray image, std::vector<KeyPoint>& keypoints, int threshold, bool nonmaxSuppression, FastFeatureDetector::DetectorType type)	Parameters
image					输入图像,灰度图像;
keypoints				检测的关键角点;
threshold				中心像素与围绕该像素的圆形像素之间强度差的阈值;
nonmaxSuppression		如果为true, 则对检测到的角点(关键点)进行非极大值抑制;
type					三种选择:FastFeatureDetector::TYPE_9_16, FastFeatureDetector::TYPE_7_12, FastFeatureDetector::TYPE_5_8

相关文章:

<图像处理> Fast角点检测

Fast角点检测 基本原理是使用圆周长为N个像素的圆来判定其圆心像素P是否为角点&#xff0c;如下图所示为圆周长为16个像素的圆&#xff08;半径为3&#xff09;&#xff1b;OpenCV还提供圆周长为12和8个像素的圆来检测角点。 相对中心像素的位置信息 //圆周长为16 static c…...

基于centos、alpine制作Java JDK基础镜像

文章目录 前言一、 简介二、制作JDK/Java基础镜像1.准备事项2.制作Dockerfile脚本2.1.基于centos作为基础镜像2.2.基于alpine作为基础镜像3.构建镜像4.测试验证前言 在日常开发中,但凡项目需要docker容器化部署,制作项目镜像前都需要在Dockerfile中配置Java基础镜像。为什么…...

【AI视野·今日Robot 机器人论文速览 第五十二期】Wed, 11 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 11 Oct 2023 Totally 31 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers RoboHive: A Unified Framework for Robot Learning Authors Vikash Kumar, Rutav Shah, Gaoyue Zhou, Vincent Moens, Vittor…...

hive 知识总结

​编辑 社区公告教程下载分享问答JD 登 录 注册 01 hive 介绍与安装 1 hive介绍与原理分析 Hive是一个基于Hadoop的开源数据仓库工具&#xff0c;用于存储和处理海量结构化数据。它是Facebook 2008年8月开源的一个数据仓库框架&#xff0c;提供了类似于SQL语法的HQL&#xf…...

golang/云原生/Docker/DevOps/K8S/持续 集成/分布式/etcd 教程

3-6个月帮助学员掌握golang后端开发岗位必备技术点 教程时长: 150小时 五大核心专栏,原理源码案例分析项目实战直击工作岗位 golang&#xff1a;解决go语言编程问题 工程组件&#xff1a;解决golang工程化问题 分布式中间件&#xff1a;解决技术栈单一及分布式开发问题 云原生…...

jeecg库login登录过程分析笔记

jeecg库&#xff08;版本jeecg-boot-v3.5.1last&#xff09;实现了用户登录功能&#xff0c;二开时为了借鉴jeecg用户登录的方法&#xff0c;跑了一遍登录方法&#xff1a; org.jeecg.modules.system.controller.LoginController#login 定义这个方法的类的路径是&#xff1a;…...

echarts仪表盘vue

<div class"ybptx" ref"btryzb"></div>mounted() {this.getBtData();},getBtData() {var chart this.$echarts.init(this.$refs.btryzb);var data_czzf 88;var option {series: [{name: 内层数据刻度,type: gauge,radius: 80%,min: 0,max: 1…...

管道和重定向分号-连接符

本文介绍shell脚本常用命令连接符&#xff1a;管道符( | )、重定向( < 、>、>>、2> 、&> )、分号( ; ) 本文内容同微信公众号【凡登】&#xff0c;关注不迷路&#xff0c;学习上高速&#xff0c;欢迎关注共同学习。 1、管道 进程的通信方式之一&#xf…...

WSL VScode连接文件后无法修改(修改报错)

权限问题 usrname:用户名 dirpath:要修改的文件夹路径 sudo chown -R usrname /dirpath...

迷你Ceph集群搭建(超低配设备)

我的博客原文链接&#xff1a;https://blog.gcc.ac.cn/post/2023/%E8%BF%B7%E4%BD%A0ceph%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA/ 环境 机器列表&#xff1a; IP角色说明10.0.0.15osdARMv7&#xff0c;512M内存&#xff0c;32G存储&#xff0c;百兆网口10.0.0.16clientARM64…...

Python数据挖掘项目实战——自动售货机销售数据分析

摘要&#xff1a;本案例将主要结合自动售货机的实际情况&#xff0c;对销售的历史数据进行处理&#xff0c;利用pyecharts库、Matplotlib库进行可视化分析&#xff0c;并对未来4周商品的销售额进行预测&#xff0c;从而为企业制定相应的自动售货机市场需求分析及销售建议提供参…...

TortoiseGit使用教程

文章目录 一. 创建仓库二. Clone仓库三. 查看修改记录四. 版本回溯五. 创建分支六. 切换分支七. 合并分支八. 删除分支九. TortoiseGit配置1. 常规配置2. 配置远程仓库账户密码3. 配置远程仓库 一. 创建仓库 在需要创建仓库的文件上右键→Git Create repository here… 创建仓…...

如何测量GNSS信号和高斯噪声功率及载波比?

引言 本文将介绍如何测量德思特Safran GSG-7或GSG-8 GNSS模拟器的输出信号功率。此外&#xff0c;还展示了如何为此类测量正确配置德思特Safran Skydel仿真引擎以及如何设置射频设备&#xff0c;从而使用频谱分析仪准确测量信号的射频功率。 什么是载波噪声密度C/N0 GNSS接收…...

动态壁纸软件iWall mac中文特色

iWall for mac是一款动态壁纸软件&#xff0c;它可以使用任何格式的漂亮视频(无须转换)&#xff0c;音频(可视化功能)&#xff0c;图片&#xff0c;动画&#xff0c;Flash&#xff0c;gif&#xff0c;swf&#xff0c;程序&#xff0c;网页&#xff0c;网站做为您的动态壁纸&…...

xtrabackup全备 增备

版本针对mysql8.0版本 官方下载地址 https://www.percona.com/downloads 自行选择下载方式 yum安装方式 1、下载上传服务器 安装软件 [rootmaster mysql]# ll percona-xtrabackup-80-8.0.33-28.1.el7.x86_64.rpm -rw-r--r--. 1 root root 44541856 Oct 10 13:25 percona-x…...

【广州华锐互动】灭火器使用VR教学系统应用于高校消防演练有什么好处?

在科技发展的大潮中&#xff0c;虚拟现实&#xff08;VR&#xff09;技术以其独特的沉浸式体验赢得了各个领域的青睐&#xff0c;其中包括教育和培训。在高校消防演练中&#xff0c;VR也成为了一种新的消防教育方式。 由广州华锐互动开发的VR消防演练系统&#xff0c;就包含了校…...

Pymol做B因子图

分子动力学模拟结束后&#xff0c;获得蛋白的平均结构&#xff0c; 比如获得的平均结构为WT-average.pdb 然后将平均结构导入到Pymol 中&#xff0c;可以得到B因子图。 gmx rmsf -f md_0_100_noPBC.xtc -s md_0_100.tpr -o rmsf-per-residue.xvg -ox average.pdb -oq bfactors…...

EKF例程 matlab

% 不含IMU误差方程的EKF滤波典型程序&#xff0c;适用于多次滤波的第二级 % author:Evand % date: 2023-09-20 % Ver1 clear;clc;close all; global T %% initial T 0.1; %采样率 t [T:T:100]; Q 0.1diag([1,1,1]);wsqrt(Q)randn(size(Q,1),length(t)); R 1diag([1,1,1]);v…...

【C语言】atoi函数的模拟

atoi对于初学者来说大概率是一个陌生的函数 但不要害怕&#xff0c;我们可以通过各种网站去查询 例如&#xff1a; cplusplus就是一个很好的查询网站 目录 函数介绍模拟实现需要注意的点 函数介绍 我们发现这是一个将字符串转换为整形数字的函数 例如&#xff1a; int main()…...

JAXB 使用记录 bean转xml xml转bean 数组 继承 CDATA(转义问题)

JAXB 使用记录 部分内容引自 https://blog.csdn.net/gengzhy/article/details/127564536 基础介绍 JAXBContext类&#xff1a;是应用的入口&#xff0c;用于管理XML/Java绑定信息 Marshaller接口&#xff1a;将Java对象序列化为XML数据 Unmarshaller接口&#xff1a;将XML数…...

MHMarkets迈汇:油价回落地缘风险有所缓和

MHMarkets迈汇&#xff1a;油价回落地缘风险有所缓和近期国际原油市场出现明显回吐&#xff0c;布伦特与WTI两大基准油价从前期高位双双滑落&#xff0c;地缘风险溢价随谈判预期升温而部分释放。市场围绕中东局势变化展开高频博弈&#xff0c;多空情绪快速切换。在这一背景下&a…...

Perplexity新闻搜索失效真相:LLM缓存机制、地域策略与时间戳偏移的三重干扰(内部技术备忘录节选)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity新闻资讯搜索 Perplexity 是一款以实时性、引用可追溯性和多源聚合为特色的 AI 搜索工具&#xff0c;其“新闻资讯搜索”功能专为技术从业者与研究人员设计&#xff0c;支持按时间范围、可信信源&a…...

华尔街量化团队内部文档流出(Perplexity财经数据查询SOP v2.3):含12类高频Query模板+错误码速查表

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity财经数据查询概述 Perplexity 是一款基于大语言模型的智能搜索与知识发现工具&#xff0c;其在财经领域展现出独特优势&#xff1a;它能实时整合权威信源&#xff08;如 SEC、Bloomberg、Reuters、…...

零基础想学挖漏洞?普通人也能看懂的网络安全入门学习路线(建议收藏)

很多人对网络安全的第一印象&#xff1a;黑客、代码、入侵、黑框代码疯狂滚动、随手就能让ATM吐钱&#xff0c;随手一个漏洞几千上万&#xff0c;日进斗金&#xff01;&#xff01;&#xff01; 但真实情况是&#xff1a;90%零基础新人不会挖漏洞&#xff0c;不是天赋不够&…...

从‘梳子’到‘低通’:图解CIC滤波器在5G和软件无线电里的那些事儿

从‘梳子’到‘低通’&#xff1a;图解CIC滤波器在5G和软件无线电里的那些事儿 在5G毫米波基站和软件无线电设备中&#xff0c;高速ADC采样产生的数据洪流就像未经处理的原油&#xff0c;而CIC滤波器正是第一道精炼装置。这种没有乘法器的奇特滤波器&#xff0c;凭借积分器和梳…...

FPGA硬解 vs 软件模拟:实测MiSTer在延迟和画质上到底强在哪?

FPGA硬解 vs 软件模拟&#xff1a;实测MiSTer在延迟和画质上到底强在哪&#xff1f; 在复古游戏的世界里&#xff0c;每一帧的延迟都可能决定《拳皇97》中一个连招的成败&#xff0c;每一像素的偏差都会影响《魂斗罗》子弹轨迹的判断。当硬核玩家们争论FPGA方案与软件模拟孰优孰…...

如何快速重置JetBrains IDE试用期:终极使用指南

如何快速重置JetBrains IDE试用期&#xff1a;终极使用指南 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否遇到过IntelliJ IDEA、PyCharm或WebStorm等JetBrains IDE试用期突然到期&#xff0c;导致开发工作…...

Linux用户的终极翻译助手:3种智能翻译方式完全指南

Linux用户的终极翻译助手&#xff1a;3种智能翻译方式完全指南 【免费下载链接】CuteTranslation Linux屏幕取词翻译软件 项目地址: https://gitcode.com/gh_mirrors/cu/CuteTranslation 你是否曾在Linux系统中阅读英文文档时频繁切换浏览器查词&#xff1f;是否因为图片…...

从屏幕取词到智能翻译:CuteTranslation如何重塑Linux用户的跨语言工作流

从屏幕取词到智能翻译&#xff1a;CuteTranslation如何重塑Linux用户的跨语言工作流 【免费下载链接】CuteTranslation Linux屏幕取词翻译软件 项目地址: https://gitcode.com/gh_mirrors/cu/CuteTranslation 在Linux生态系统中&#xff0c;多语言处理一直是个技术痛点—…...

Android Studio中文插件5分钟快速安装完整指南:告别英文开发困扰

Android Studio中文插件5分钟快速安装完整指南&#xff1a;告别英文开发困扰 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在…...