首页 > 编程语言 >OpenCV-Python Shi-Tomasi 角点检测 & 适合于跟踪的图像特征

OpenCV-Python Shi-Tomasi 角点检测 & 适合于跟踪的图像特征

时间:2024-11-20 08:49:26浏览次数:3  
标签:Tomasi Python corners cv2 角点 Shi lambda

原理
  上一节我们学习了 Harris 角点检测,后来 1994 年,J.Shi 和 C.Tomasi在他们的文章《Good_Features_to_Track》中对这个算法做了一个小小的修改,并得到了更好的结果。我们知道 Harris 角点检测的打分公式为:
R = \lambda_1 \lambda_2 - k(\lambda_1+\lambda_2)^2
但 Shi-Tomasi 使用的打分函数为:
R = min(\lambda_1, \lambda_2)
如果打分超过阈值,我们就认为它是一个角点。

31.1 代码
  OpenCV 提供了函数:cv2.goodFeaturesToTrack()。这个函数可以帮我们使用 Shi-Tomasi 方法获取图像中 N 个最好的角点。通常情况下,输入的应该是灰度图像。然后确定你想要检测到的角点数目。再设置角点的质量水平,0到 1 之间。它代表了角点的最低质量,低于这个数的所有角点都会被忽略。最后在设置两个角点之间的最短欧式距离。
根据这些信息,函数就能在图像上找到角点。所有低于质量水平的角点都会被忽略。然后再把合格角点按角点质量进行降序排列。函数会采用角点质量最高的那个角点(排序后的第一个),然后将它附近(最小距离之内)的角点都删掉。按着这样的方式最后返回 N 个最佳角点。
在下面的例子中,我们试着找出 25 个最佳角点:

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('simple.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

corners = cv2.goodFeaturesToTrack(gray,25,0.01,10)
corners = np.int0(corners)

for i in corners:
    x,y = i.ravel()
    cv2.circle(img,(x,y),3,255,-1)

plt.imshow(img),plt.show()

复制代码

标签:Tomasi,Python,corners,cv2,角点,Shi,lambda
From: https://blog.csdn.net/m0_37302966/article/details/143901160

相关文章

  • OpenCV-Python Harris 角点检测
    原理在上一节我们已经知道了角点的一个特性:向任何方向移动变化都很大。Chris_Harris和Mike_Stephens早在1988年的文章《ACombinedCornerandEdgeDetector》中就已经提出了焦点检测的方法,被称为Harris角点检测。他把这个简单的想法转换成了数学形式。将窗口向......
  • 【Linux】将python文件上传到GitHub(新版图文逐步详解)
    1.进入想要上传文件所在的文件夹,这里以如下图中目录下的t1为例2.输入如下命令,将当前目录变为git可以管理的目录gitinit3.将想要上传的文件添加到缓冲区gitaddt1.py出错了,查阅资料发现出现该提示是因为.gitignore文件中有规则将t1.py文件(或其所在目录)排除了,如果......
  • Python中的requests模块详解
    requests基础操作定义requests是一个基于网络请求的模块。可以使用程序模拟浏览器上网。环境安装pipinstallrequests编码流程指定url(相当于在浏览器地址栏输入一个网址)发起请求(相当于浏览器按下回车)获取响应数据(相当于浏览器请求到的数据/返回的页......
  • 使用python快速合并文件夹内excel数据
    数据分析的时候文件太多,一个一个合并效率太慢?有没有方便的方法快速合并他们本文作者使用jupyternotebook采用以下代码实现excel数据合并功能importpandasaspdimportos#设置文件夹路径folder_path='D:\\你自己的路径'#找到所有Excel文件excel_files=[file......
  • python:reflection 反射
    C#面象对象的语言也有类似的反射  reflection便于根据配置文件,方便切换数据库。切换DAL层即可。#encoding:utf-8#版权所有2024©涂聚文有限公司#许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎#描述:#Author:geovindu,GeovinDu涂聚文.#IDE......
  • python: generator IDAL and DAL using sql server 2019
     createIDAL#encoding:utf-8#版权所有2024©涂聚文有限公司#许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎#描述:#Author:geovindu,GeovinDu涂聚文.#IDE:PyCharm2023.1python3.11#OS:windows10#Datetime:2024/......
  • Python-开发运动会计分管理软件
    PYTHON-开发运动会计分管理软件项目概述1.软件功能我们的运动会计分管理软件具有以下功能:添加运动员:提供接口让用户输入运动员的基本信息,包括分组、姓名、名次。管理分组:支持创建、修改和删除运动员分组,方便组织和查看。得分计算:根据运动员名次自动计算得分,并在用户界面中......
  • Python 时间模块(time,datetime)
    在Python中,time模块和datetime模块都与时间处理相关,但它们有着不同的特点和用途,以下为你详细介绍:一.time模块概述:time模块提供了各种与时间相关的函数,它主要围绕着时间戳(从1970年1月1日00:00:00UTC到某个时刻所经过的秒数)来进行操作,常用于获取当前时间、对时间进......
  • 解释爬虫的基本概念,以及它的作用,并讲解如何使用 Python 实现网络爬虫。
    爬虫是一种自动化程序,用于从互联网上收集数据。它通过模拟人类访问网页的行为,自动发送HTTP请求,获取网页内容,并抽取所需的数据。爬虫的作用非常广泛。它可以用于搜索引擎的网页索引,获取新闻、博客等网页内容,进行数据挖掘和分析,监测网站的变化等。Python是一种常用的编程语言......
  • Zmap+python脚本+burp实现自动化Fuzzing测试
    声明学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。✍......