Harris角点检测和Shi-Tomasi角点检测

计算机视觉 OpenCV Android | 特征检测与匹配之角点检测——Harris角点检测与Shi-Tomasi角点检测... 本文要点总结(俩算法的联系与区别) Harris角点检测与Shi-Tomasi角点检测都是经典的角点特征提取算法, 但两者在API的使用上有出入(详见文中代码或GitHub项目); Harris角点检测的API,返回/输出的是一个与输入图像大小一致的Mat对象, 这个Mat对象的每一个坐标(i,j)都是对应输入图像对应坐标(i,j)的像素的响应值R, 要... 阅读详情

什么是角点?

  1. 两条边缘的交点
  2. 灰度梯度局部最大值对应的点(梯度方向和幅值都有着很大变化)
    在这里插入图片描述

Harris角点的基本思想

Harris想象有一个滑动窗口,在图像的任意方向上滑动,比较滑动前后像素灰度的变化程度,来判断是否存在角点
在这里插入图片描述

Harris角点特征的数学表达

在这里插入图片描述
其中w是窗口函数,可以是加权函数,也可以是高斯函数
在这里插入图片描述
将E展开之后得到
在这里插入图片描述
一阶可以近似为
在这里插入图片描述
推导成矩阵的形式
在这里插入图片描述
近似的,有
在这里插入图片描述
其中,M为2*2的矩阵
在这里插入图片描述
二次项可以看成一个椭圆函数,对M进行特征值分析:
在这里插入图片描述
根据λ1,λ2的值我们可以把其分为三类:

  1. λ1,λ2都很小且近似,E在所有方向接近于常数;
  2. λ1>>λ2,或者λ2>>λ1, E将在某一方向上很大;
  3. λ1,λ2都很大且近似,E将在所有方向上很大;
    在这里插入图片描述
    在这里插入图片描述
    最后根据角点响应值计算R所属区间
    在这里插入图片描述
    在这里插入图片描述
    不同的k值形状不同,一般取0.04-0.06
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可以看到当k=0.05时,R的等高线图很接近与下面这幅图
    在这里插入图片描述

Harris角点的性质

对于灰度放射变化来说,具有部分的不变性。
在这里插入图片描述
但是当图像几何尺度变化之后,原来的边缘点可能会被判断成为角点。
在这里插入图片描述
在这里插入图片描述

Harris算法具体步骤

1.计算图像x,y方向的梯度Ix,Iy
在这里插入图片描述
2.计算每个像素点的梯度平方
在这里插入图片描述
3.计算梯度在每个像素点的和
在这里插入图片描述

4.定义在每个像素点的矩阵H,也就是前面的M
在这里插入图片描述
5.计算每个像素的角点响应
在这里插入图片描述
6.设置阈值找出可能点并进行非极大值抑制

Tshi-Tomasi角点检测和Harris的区别

主要的区别就是角点检测的打分公式
Harris角点检测的打分公式为:Harris角点检测
R = λ1λ2 - k(λ1 + λ2)²
在这里插入图片描述
但是Shi-Tomasi使用的打分函数为:
R = min(λ1, λ2)
如果打分超过阈值,我们就认为它是一个角点。我们可以把它绘制到λ1~λ2空间中,就会得到下图:
在这里插入图片描述

参考博客
[图文]Harris角点检测 - 百度文库
https://wenku.baidu.com/view/f61bc369561252d380eb6ef0.html
OpenCV学习笔记-Shi-Tomasi角点检测 - 云中寻雾的博客 - 优快云博客
https://blog.youkuaiyun.com/qq_36387683/article/details/80550964
Harris Corner(Harris角检测) - klitech - 博客园
https://www.cnblogs.com/klitech/p/5779600.html
学习笔记 2.1 — Harris角点检测与特征匹配【含实例】 - Yebin的博客 - 优快云博客
https://blog.youkuaiyun.com/weixin_41923000/article/details/88631944

Harris与Shi-Tomasi 角点检测原理 Shi-Tomasi角点是根据Harris改进而来的。所以本文首先介绍Harris的原理。Harris角点检测算法基本思想是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。 阅读详情

相关推荐

【OpenCV】角点检测:Harris角点及Shi-Tomasi角点检测

角点 特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系。点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做“关键特征点”(keypoint feature),或“兴趣点”(interest point),或“角点”(conrner)。 关于角点的具体描述可以有几种: 一阶导数(即灰度的梯度)的局部最大所对应的像素点;...

小魏的修行路 9万+

Shi-Tomasi & 亚像素 角点检测

shi-tomasi & 亚像素 角点检测 学习笔记

Ddsluke的博客 511

OpenCV图像特征提取与检测C++(二)Harris角点检测、Shi-Tomasi 角点检测、亚像素级别角点检测

图像特征类型可以分为三种: 边缘,角点,斑点。 其中,角点是个很特殊的存在,他们在图像中可以轻松定位,因为角点位于两条边缘的交点,代表了两条边缘变化的方向上的点,所以他们是可以精确定位的二维特征,甚至可以达到亚像素精度。 角点定义:如果某一点在任意方向的一个微小变动都会引起灰度很大的变化,则称为角点。 角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的...

法兰西流浪者博客 4942

计算机视觉基础21---角检测

参考书目:《OpenCV计算机视觉基础教程》–夏帮贵。 代码编写:Jupyter Notebook。 # 图像的特征:图像中具有独特性和易于识别性的区域,如:角、边缘; # 角检测: # 角是两条边的交点,可称为角点或拐角,是图像中各个方向上强度变化最大的区域; # 1.哈里斯角检测 # 语法格式:dst = cv2.cornerHarris(src, blockSize, ksize, k) # 参数说明: # a.dst:返回结果,一个numpy.ndarray对象,大小和src相同,每一个数组

FUXI_Willard 1530

Harris和Shi-tomasi角点检测笔记(详细推导)

一般来说,角点就是极值点,在某些属性上强度最大或者最小的孤立点、线段的终点或拐点等。其实理解角点可以按照我们的直觉来理解,以下图为例,图中用颜色标注的地方都是角点:对于人类来说,判断角点是很容易的,对于计算机来说又是如何检测到角点的呢?

vivo01的专栏 4522

Moravec、Harris、Nobel、Shi-Tomasi角点检测

基本思想:          (a) 平坦区域                          (b)边缘区域                      (c)角点区域 算法的基本思想是: (1)如果图片在窗口附近变化平坦,窗口所有方向上的移动只会引起窗口内对应像素灰度值微小的变化,如图a所示。 (2)如果窗口位于图像边缘上,那么顺着边缘方向上的移动引起上述值微小的变化,垂直于边缘方

2121

【特征匹配】Harris及Shi-Tomasi原理及源码解析

本文采用的是opencv2.4.3中的源码。 转载请注明出处:http://blog.youkuaiyun.com/luoshixian099/article/details/48244255 Harris角点检测    人眼对角点的识别通常是通过一个局部的小窗口内完成的,如果在各个方向上移动这个小窗口,窗口内的灰度发生了较大的变化,那么说明窗口内存在角点。   如果在各个方向移动,灰度几乎不变,说明

勿在浮砂筑高台 1万+

角点检测集锦(Harris,Shi-Tomasi,亚像素级角点检测)原理及相关实现

什么是角点? 一个像素所在的区域一般情况下可以分为以下三种情况,平坦,边,角点三种情况,如下图最右边。 在角点处,沿任意方向运动都会引起像素颜色的明显变化等价于:在角点附近,图像梯度具有至少两个主方向。 如何实现角点检测? 角点检测最原始的想法就是取某个像素的一个邻域窗口,当这个窗口在各个方向上进行小范围移动时,观察窗口内平均的像素灰度值的变化。...

种花家的奋斗兔的博客 2074

Harris角点及Shi-Tomasi角点检测

一、角点定义 有定义角点的几段话: 1、角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。也称为特征点检测。 角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点

xw20084898的专栏 5万+

【OpenCV】第二十一章: 角点检测之:harris算法以及Shi-Tomasi算法

一、Harris角点检测 二、Shi-Tomasi角点检测

因为热爱所以坚持 4227

Triplet Loss调参实战:Margin选多少?距离函数用哪个?我的模型为什么训不动?

本文深入探讨了Triplet Loss调参中的关键问题,包括margin参数的选择、距离函数的比较以及模型训练不动的常见原因。通过实战案例和技术分析,提供了针对不同场景(如人脸识别、商品图像、文本匹配)的margin黄金区间,并对比了欧式距离与余弦相似度的适用场景。文章还介绍了困难样本挖掘的最新策略和模型诊断的实用清单,帮助开发者高效解决度量学习中的工程难题。

weixin_29050271的博客 411

OpenCV —— 角点检测之 Harris 角点检测、Shi-Tomasi 角点检测、FAST 角点检测

Harris 角点检测实现原理OpenCV 函数优化GFTT 在图像处理和计算机视觉领域,兴趣点(inter points),也被称作关键点(key points)、特征点(feature points)。它被大量用于解决物体识别、图像识别、图像匹配、视觉跟踪、三维重建等一系列的问题。我们不再观察整幅图,而是选择某些特殊的点,然后对它们进行局部有的放矢地分析。如果能检测到足够多的这种点,同时它们的区分度很高,并且可以精确定位稳定的特征,那么这个方法就具有实用价值。 图像特征类型可以被分为如下三种: 边缘

学无止境 9444

OneNET物模型实战:如何用NB-IOT模块上传JSON数据并解析

本文详细介绍了如何利用NB-IOT模块将传感器数据上传至中国移动OneNET物联网平台,并利用其物模型功能实现JSON数据的自动解析。文章从理解OneNET物模型与OneJson协议入手,逐步讲解了平台侧物模型创建、设备注册,以及设备端数据构造、HEX编码与NB-IOT模块AT指令上报的全流程,并提供了关键的调试技巧与常见问题排查方法,为物联网开发者提供了完整的实战指南。

sugar的博客 680

角点检测汇总:Harris角点及Shi-Tomasi角点检测

一、角点定义 有定义角点的几段话: 1、角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测、图像匹配、视频跟踪、三维建模和目标识别等领域中。也称为特征点检测。 角点通常被定义为两条边的交点,更严格的说,角点的局部邻域应该具有两个不同区域的不同方向的边界。而实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点,而不仅

ihadl的专栏 6万+

【SystemVerilog笔记(一)】数据类型

(一)内建数据类型 1.按照四值逻辑和二值逻辑分类 四值逻辑类型:integer、logic、reg、wire等线网类型 二值逻辑类型:byte、shortint、int、longint、bit 2.按照有符号和无符号分类 有符号类型:byte、shortint、int、longint、integer 无符号类型:bit、logic、reg、wire等线网类型 ※记忆:按位定义的变量是无符号的。 (二)软件常用类型 1.定宽数组 在这里插入代码片 ...

cc__cc__的博客 1万+

NLP DAY1: 文本数据读取

txt 文本数据的读写CSV 及 Excel 文本数据的读写更多的 DataFrame 操作数据规模太大怎么办相信通过本次实验的学习,同学们可以游刃有余地面对各种数据文件了。在接下来的实验中,我们将开始真正地开启自然语言处理之旅,开始认识并熟悉一些常见的针对文本本身的预处理操作。

feifeikon的博客 1058

OpenCV:Harris、Shi-Tomasi角点检测

Harris 角点检测 基于矩阵行列式和迹,检测速度快,但对噪声敏感。Shi-Tomasi 角点检测 基于最小特征值,角点质量更高,适用于目标跟踪。在目标跟踪、图像匹配、3D 重建等任务中,Shi-Tomasi 角点通常表现更优。

u011186532的专栏 1192

【ATC/DTC方法第四期】GOT09-dT-tao 昼夜温度周期模型方法介绍(含Python代码实现)

GOT09-dT-tao 模型是一种经过简化和参数固定的 昼夜温度周期模型(Diurnal Temperature Cycle, DTC)。它从 GOT09 模型(Göttsche and Olesen, 2009)衍生而来,但更加轻量化,更适合在数据不足或参数估计困难的情境下使用。

WW、forever的博客 146

OpenCV-Python Harris角点检测与Shi-Tomasi角点检测

OpenCV-Python Harris角点检测与Shi-Tomasi角点检测

m0_37302966的博客 1231

STM32串口编程基础知识讲解

本篇文章给大家介绍一下串口的基础编程知识,这些知识是属于串口的理论知识,在开始学习编写代码的时候必须要掌握这些基本的知识点。本篇文章讲解了串口的基本概念知识,大家在学习编写代码时将其掌握才能更好的理解代码。

m0_49476241的博客 1208

《QT+PCL》点云的点选与框选

【代码】《QT+PCL》点云的点选与框选。

阁楼 3602

张正友相机标定方法中标定板角点检测算法原理(Harris和Shi-Tomasi角点检测算法)

在棋盘格图案中,角点是白格与黑格交界的交叉点,即四个颜色区域交汇处的内角点(不包括外边框角点)。如图所示:若棋盘格为 8x6 格,则角点数量为 7×5=35 个。Rdet⁡M−k⋅trace⁡M2λ1λ2−kλ1λ22RdetM−k⋅traceM2λ1​λ2​−kλ1​λ2​2k∈0.040.06k∈0.040.06:经验常数若RthresholdRthreshold,该点为角点。

qq_36812406的博客 2508

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

理解Harris和Shi-Tomasi算法的原理,进行角点检测

Harris算法思想:通过图像的局部的小窗口观察图像,角点的特征是窗口沿任意方向移动都会导致图像灰度的明显变化。Shi-Tomasi算法对Harris算法的改进,能够更好地检测角点。

黑马程序员官方博客 956

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

opencv c++ Harris角点检测、shi-tomasi角点

应用:连续的图像移动或图像拼接场景中,确定图像中某一对象的位置。 在x方向和y方向都有最大梯度变化的像素点,衡量这个变化的计算式如下,为xx,xy,yx,yy四个方向的梯度sum值组成的2×2矩阵: a)在实际过程中,会在计算梯度时,乘以一个对应位置的权重 w(x, y),u,v为沿着对应方向移动的距离。 b)在经过转换后得到新的E(u, v)式子: 其中: k = 0.04~0.6

lucust的博客 2052

图像处理——角点检测(Harris、Shi-Tomasi、亚像素检测)

首先感谢以下两位的博文帮助我的理解。 (1)lwzkiller            http://blog.youkuaiyun.com/lwzkiller/article/details/54633670 (2)青雲-吾道乐途   http://blog.youkuaiyun.com/qq_37059483/article/details/77852187 1. 何为角点? 下

fengye2two的专栏 1万+
上一篇: 深度学习和OpenCV-python读书笔记一(DNN介绍)
下一篇: java传递引用参数
刘凯KAI
博客等级 码龄15年 663粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值