Python+OpenCV中的Shi-Tomasi角点检测实现(附代码)
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()
运行结果如下:
Python+OpenCV中的Shi-Tomasi角点检测实现(附代码)相关推荐
- OpenCV中的几种角点检测方法
1.Harris角点检测 import numpy as np import cv2 as cv import matplotlib.pyplot as pltplt.rcParams['font.s ...
- 番外3. Python OpenCV 中如何绘制各种图形?
本系列专栏写作方式 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级.中级.高级知识. 3. Python OpenCV 中如何绘制各种图形? 本篇博客主要分享一下在 P ...
- OpenCV与图像处理学习十三——Harris角点检测(含代码)
OpenCV与图像处理学习十三--Harris角点检测(含代码) 一.角点的概念 二.Harris角点检测的实现过程 三.Harris代码应用 一.角点的概念 角点: 在现实世界中, 角点对应于物体的 ...
- OpenCV实战(16)——角点检测详解
OpenCV实战(16)--角点检测详解 0. 前言 1. Harris 特征检测器 1.1 检测 Harris 角点 1.2 cv::cornerHarris 函数参数 2. 可追踪的良好特征 3. ...
- 树莓派python实例_使用Python实现树莓派WiFi断线自动重连实例(附代码)
实现 WiFi 断线自动重连,原理是用 Python 监测网络是否断线,如果断线则重启网络服务.接下来给大家分享实现代码,需要的朋友参考下 1.Python 代码 autowifi.py,放在 /ho ...
- cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/8763369.html 参考文献----------OpenCV-Python-Toturial ...
- Python OpenCV中色彩空间的转换类型
OpenCV中具有的色彩空间转换类型有很多,编写一个简单的Python程序,OpenCV下所支持的色彩空间转换类型 Python程序: # -*- coding: utf-8 -*-import cv ...
- python drawline_基于python,OPenCv中基本的绘图函数
(一)OpenCv中,python接口的基本的绘图函数 1-用于绘制直线的--------cv2.line()函数 2-用于绘制椭圆的--------cv2.ellipse()函数 3-用于绘制矩形的 ...
- Python OpenCV 图像匹配(Brute-Force与FLANN)的原理与代码实现
先导文章:SIFT特征提取 Python OpenCV SIFT特征提取的原理与代码实现_乔卿的博客-CSDN博客如果对图像扩大规模,如缩放,如下图所示,那么原本的角点在变换后的某些窗口中可能就不是角 ...
- python+OpenCV笔记(三十七):检测运动物体——使用MOG/KNN背景差分器
目录 一.基本背景差分器 二.MOG背景差分器 流程 代码编写 三.KNN背景差分器 目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是稳定的,当摄像头 ...
最新文章
- 以太坊公链私链_如何使用以太坊构建汽车制造供应链系统
- 取得手机屏幕大小/style的应用技巧
- Sharepoint带自定义属性的FieldType
- 查找表存在于那些proc中
- Unity3damp;amp;C#分布式游戏服务器ET框架介绍-组件式设计
- 数据有序_Redis实战(3)-数据结构List实战一之商品信息的有序存储
- 解决URI is not registered (Settings | Languages Frameworks | Schemas and DTDs)
- web 前端小记_1 :hasLayout
- 新国标下的2020年电动单车企业蓬勃发展
- Python 爬虫---百度首页
- YARN工作流程详解
- C++ Grammar
- IDEA Spring facet的意思
- CSS3元素闪烁效果
- bcdedit用法详解
- VBS的msgbox函数用法
- Kali与编程:Winserver2019上搭建wds网络部署服务器
- linux音源管理 二维表,Oracle【二维表管理:约束】
- Isolate microTask event Isolate.spawn() compute
- 5.4-5.5 单位矩阵与矩阵的逆