一、算法基本原理和步骤

(1)原理
shi-Tomasi 算法是Harris 算法的改进。Harris 算法最原始的定义是将矩阵 M 的行列式值与 M 的迹相减,再将差值同预先给定的阈值进行比较。后来Shi 和Tomasi 提出改进的方法,若两个特征值中较小的一个大于最小阈值,则会得到强角点。

(2)算法步骤


二、代码实现

(1)goodFeatureTrack()函数原型:

void goodFeaturesToTrack( InputArray image, OutputArray corners,int maxCorners, double qualityLevel, double minDistance,InputArray mask=noArray(), int blockSize=3,
bool useHarrisDetector=false, double k=0.04 );

(2)参数说明:
image:输入图像,8-位或浮点32-比特,单通道
corners:输出参数,检测到的角点
corner_count:输出参数,检测到的角点数目
quality_level:最大最小特征值的乘法因子。定义可接受图像角点的最小质量因子
min_distance:限制因子。得到的角点的最小距离;使用 Euclidian 距离
mask
ROI:感兴趣区域。函数在ROI中计算角点,如果 mask 为 NULL,则选择整个图像
block_size: 是计算导数的自相关矩阵时指定点的领域,采用小窗口计算的结果比单点(也就是block_size为1)计算的结果要好
useHarrisDetector:当use_harris的值为非0,则函数使用Harris的角点定义;若为0,则使用Shi-Tomasi的定义
K:用于设置Hessian自相关矩阵即对Hessian行列式的相对权重的权重系数

(3)代码实现:

#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;int max_cornerNum;
void on_change(int,void*){Mat image=imread("12.jpg");Mat imageGray;cvtColor(image,imageGray,CV_BGR2GRAY );Mat copyImage;copyImage=image.clone();//goodFeaturesToTrack函数参数设置vector<Point2f> corner;double qualityLevel = 0.01;double minDistance = 10;int blockSize = 3;bool useHarrisDetector = false;double k = 0.04;//调用函数goodFeaturesToTrackgoodFeaturesToTrack(imageGray,corner,max_cornerNum,qualityLevel,minDistance,Mat(),blockSize,useHarrisDetector,k);//画图cout<<"** Number of corners detected: "<<corner.size()<<endl;int r = 4;for( int i = 0; i < corner.size(); i++ ){ circle( copyImage, corner[i], r, Scalar(0,0,255));}//显示图像imshow( "Detector image", copyImage );}int main(){max_cornerNum=23;namedWindow("Detector image",0);createTrackbar("cornerNum","Detector image",&max_cornerNum,120,on_change);waitKey(0);return 0;
}

结果:

Shi-Tomasi角点检测相关推荐

  1. OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测

    在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪 ...

  2. OpenCV Shi-Tomasi角点检测

    Shi-Tomasi算法是对Harris角点检测算法的改进,一般会比Harris算法得到更好的角点.Harris 算法的角点响应函数是将矩阵 M 的行列式值与 M 的迹相减,利用差值判断是否为角点.后 ...

  3. opencv角点检测学习总结

    学习opencv 角点检测 如果一个点在两个正交方向上都有明显的导数,则我们认为此点更倾向于是独一无二的,所以许多可跟踪的特征点都是角点. 一下为角点检测中用到的一些函数 cvGoodFeatures ...

  4. OpenCV之feature2d 模块. 2D特征框架(1)Harris 角点检测子 Shi-Tomasi角点检测子 定制化创建角点检测子 亚像素级的角点检测 特征点检测

    Harris 角点检测子 目标 本教程中我们将涉及: 有哪些特征?它们有什么用? 使用函数 cornerHarris 通过 Harris-Stephens方法检测角点. 理论 有哪些特征? 在计算机视 ...

  5. 角点检测:Harris角点及Shi-Tomasi角点检测

    角点 特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系.点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做"关键特 ...

  6. 【OpenCV3】角点检测——cv::goodFeaturesToTrack()与cv::cornerSubPix()详解

    一提到角点检测,最常用的方法莫过于Harris角点检测,opencv中也提供了Harris角点检测的接口,即cv::cornerHarris(),但是Harris角点检测存在很多缺陷(如角点是像素级别 ...

  7. 角点检测--基于梯度的方法(Moravec角点检测、Harris角点检测、Shi-Tomasi角点检测)

    Moravec Detector Moravec角点检测是第一个提出兴趣点(interest points)的Paper.它的主要思想是:以每个像素为中心,有一个固定的滑动窗口.该方法计算并在八个方向 ...

  8. 特征提取与检测(一)---Harris与Shi-Tomasi角点检测原理

    一.Harris角点检测原理 1. 何为角点? 下面有两幅不同视角的图像,通过找出对应的角点进行匹配. 我们可以直观的概括下角点所具有的特征: >轮廓之间的交点: >对于同一场景,即使视角 ...

  9. 图像局部特征(二)--Harris角点检测子

     一.角点定义 有定义角点的几段话: 1.角点检测(Corner Detection)是计算机视觉系统中用来获得图像特征的一种方法,广泛应用于运动检测.图像匹配.视频跟踪.三维建模和目标识别等领域 ...

  10. OpenCV角点检测: Harris算子, ShiTomasi算子

    角点检测 角点的特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系.点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做&quo ...

最新文章

  1. 【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码规格 | 码率 | 帧率 | B帧个数 | 关键帧间隔 | 关键帧解码数据 SPS PPS )
  2. 开源库的使用方法以及libjpeg的移植详解
  3. python数据分析工资_python3对拉勾数据进行可视化分析的方法详解
  4. SpringBoot v2.2.6版本遇到的坑------Thymeleaf的sec:authorize标签无效
  5. Vs code自动生成Doxygen格式注释
  6. 混合编程黑科技:跨语言编程问题迎刃而解的3个要点
  7. 数据分析——朴素贝叶斯原理示意图
  8. 103. 二叉树的锯齿形层次遍历
  9. YAML 学习笔记 .yml
  10. 西安建筑科技大学安德学院计算机专业,【图片】【安德学院】身在建大,志在四方【西安建筑科技大学吧】_百度贴吧...
  11. canvas需要gpu_【前端冷知识】你了解Canvas的渲染上下文吗?
  12. 对生信与计算生物的一点认识[转载]
  13. Cookie、Session、Token、RefreshToken
  14. 第四篇:在MVPArms中报错error: cannot find symbol class DaggerXXXComponent的问题
  15. windows服务启动tomcat内存溢出问题解决方案
  16. SQL获取两个日期之间的天数
  17. 软件项目工作量估算方法解析
  18. CloudSim4.0 Learning(1)
  19. Web前端知识CSS(清浮动的方法、CSS精灵图、滑动门)
  20. 【资源共享】好用的视觉软件Adaptive Vision Studio

热门文章

  1. 大疆livox定制的格式CustomMsg格式转换pointcloud2
  2. 微软早就该收购雅虎了
  3. 宿舍的呼噜神,快看过来,我这里有药!!!
  4. 计算机硬盘数据如何恢复,怎样进行硬盘数据恢复
  5. python一笔画五角星_五角星怎么画标准(一笔画五角星的顺序)
  6. VS code + miktex + 内置pdf阅读器 配置latex编译环境
  7. cad 打开硬件加速卡_CAD2020 使用图块插入命令特别卡怎么办?
  8. 神奇的λ-calculus
  9. Mac idea破解到2100年
  10. 制作个简单的个人logo