1994年,J.Shi 和 C.Tomasi发表了文章《Good_Features_to_Track》,对Harris角点检测算法进行了改进。

具体原理可以参考各种文献资料,另外值得一提的是该算法适合运动物体的角点跟踪。


Opencv中的函数cv2.goodFeatureToTrack()用来进行Shi-Tomasi角点检测,其参数说明如下所示:

第一个参数:通常情况下,其输入的应是灰度图像;

第二个参数N:是想要输出的图像中N个最好的角点;

第三个参数:设置角点的质量水平,在0~1之间;代表了角点的最低的质量,小于这个质量的角点,则被剔除;

最后一个参数:设置两个角点间的最短欧式距离;也就是两个角点的像素差的平方和;

根据以上四个参数,运用此函数就能在图像上找到角点,所有低于质量水平的角点都被忽略;然后再把质量水平合格的角点按照角点质量进行降序排列;首先选取质量最高的那个角点,将其欧式距离内的角点都删掉;然后选取质量第二高的角点,重复进行;最后返回N个最佳角点;

附代码如下图所示:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
from matplotlib import pyplot as pltimg=cv2.imread('4.jfif') #原图为彩色图,可将第二个参数变为0,为灰度图gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray,30,0.3,5) # 返回的结果是 [[ a., b.]] 两层括号的数组。corners = np.int0(corners)
for i in corners:x,y = i.ravel()cv2.circle(img,(x,y),2,255,-1) #在角点处画圆,半径为2,红色,线宽默认,利于显示
plt.imshow(img),plt.show()

运行结果如下:

Shi-Tomasi角点检测,红色点为角点

Python+OpenCV中的Shi-Tomasi角点检测实现(附代码)相关推荐

  1. OpenCV中的几种角点检测方法

    1.Harris角点检测 import numpy as np import cv2 as cv import matplotlib.pyplot as pltplt.rcParams['font.s ...

  2. 番外3. Python OpenCV 中如何绘制各种图形?

    本系列专栏写作方式 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级.中级.高级知识. 3. Python OpenCV 中如何绘制各种图形? 本篇博客主要分享一下在 P ...

  3. OpenCV与图像处理学习十三——Harris角点检测(含代码)

    OpenCV与图像处理学习十三--Harris角点检测(含代码) 一.角点的概念 二.Harris角点检测的实现过程 三.Harris代码应用 一.角点的概念 角点: 在现实世界中, 角点对应于物体的 ...

  4. OpenCV实战(16)——角点检测详解

    OpenCV实战(16)--角点检测详解 0. 前言 1. Harris 特征检测器 1.1 检测 Harris 角点 1.2 cv::cornerHarris 函数参数 2. 可追踪的良好特征 3. ...

  5. 树莓派python实例_使用Python实现树莓派WiFi断线自动重连实例(附代码)

    实现 WiFi 断线自动重连,原理是用 Python 监测网络是否断线,如果断线则重启网络服务.接下来给大家分享实现代码,需要的朋友参考下 1.Python 代码 autowifi.py,放在 /ho ...

  6. cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8763369.html 参考文献----------OpenCV-Python-Toturial ...

  7. Python OpenCV中色彩空间的转换类型

    OpenCV中具有的色彩空间转换类型有很多,编写一个简单的Python程序,OpenCV下所支持的色彩空间转换类型 Python程序: # -*- coding: utf-8 -*-import cv ...

  8. python drawline_基于python,OPenCv中基本的绘图函数

    (一)OpenCv中,python接口的基本的绘图函数 1-用于绘制直线的--------cv2.line()函数 2-用于绘制椭圆的--------cv2.ellipse()函数 3-用于绘制矩形的 ...

  9. Python OpenCV 图像匹配(Brute-Force与FLANN)的原理与代码实现

    先导文章:SIFT特征提取 Python OpenCV SIFT特征提取的原理与代码实现_乔卿的博客-CSDN博客如果对图像扩大规模,如缩放,如下图所示,那么原本的角点在变换后的某些窗口中可能就不是角 ...

  10. python+OpenCV笔记(三十七):检测运动物体——使用MOG/KNN背景差分器

    目录 一.基本背景差分器 二.MOG背景差分器 流程 代码编写 三.KNN背景差分器 目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是稳定的,当摄像头 ...

最新文章

  1. 以太坊公链私链_如何使用以太坊构建汽车制造供应链系统
  2. 取得手机屏幕大小/style的应用技巧
  3. Sharepoint带自定义属性的FieldType
  4. 查找表存在于那些proc中
  5. Unity3damp;amp;C#分布式游戏服务器ET框架介绍-组件式设计
  6. 数据有序_Redis实战(3)-数据结构List实战一之商品信息的有序存储
  7. 解决URI is not registered (Settings | Languages Frameworks | Schemas and DTDs)
  8. web 前端小记_1 :hasLayout
  9. 新国标下的2020年电动单车企业蓬勃发展
  10. Python 爬虫---百度首页
  11. YARN工作流程详解
  12. C++ Grammar
  13. IDEA Spring facet的意思
  14. CSS3元素闪烁效果
  15. bcdedit用法详解
  16. VBS的msgbox函数用法
  17. Kali与编程:Winserver2019上搭建wds网络部署服务器
  18. linux音源管理 二维表,Oracle【二维表管理:约束】
  19. Isolate microTask event Isolate.spawn() compute
  20. 5.4-5.5 单位矩阵与矩阵的逆

热门文章

  1. Java中反射机制入门
  2. 迅雷thunder://协议解密
  3. autoCAD恐吓式销售_恐吓式软文的例子 恐吓式软文营销案例分享
  4. 【运筹学】CH2 线性规划与单纯形法1——线性规划问题及其数学模型
  5. 【something】简单的平均脸制作
  6. 计算机网络未识别网络,电脑网络出现未识别的网络,无Internet访问的解决办法...
  7. 【C语言】猜灯谜问题
  8. python基础题目练习,购买猕猴桃
  9. e路航LH900N导航仪凯立德最新版本地图更新方法
  10. 前端弹出对话框 js实现 ajax交互