J.Shi和C.Tomasi在1994年在其论文“Good Features to Track”中,提出了一种对Harris角点检测算子的改进算法——Shi-Tomasi角点检测算子,可以看到,Opencv中函数goodFeaturesToTrack就是直接取自他们论文的名字。

goodFeaturesToTrack有比cornerHarris更多的控制参数,函数原型:

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 );

第一个参数image:8位或32位单通道灰度图像;

第二个参数corners:位置点向量,保存的是检测到的角点的坐标;

第三个参数maxCorners:定义可以检测到的角点的数量的最大值;

第四个参数qualityLevel:检测到的角点的质量等级,角点特征值小于qualityLevel*最大特征值的点将被舍弃;

第五个参数minDistance:两个角点间最小间距,以像素为单位;

第六个参数mask:指定检测区域,若检测整幅图像,mask置为空Mat();

第七个参数blockSize:计算协方差矩阵时窗口大小;

第八个参数useHarrisDetector:是否使用Harris角点检测,为false,则使用Shi-Tomasi算子;

第九个参数k:留给Harris角点检测算子用的中间参数,一般取经验值0.04~0.06。第八个参数为false时,该参数不起作用;

goodFeaturesToTrack检测Shi-Tomasi角点简单demo:

#include "core/core.hpp"
#include "highgui/highgui.hpp"
#include "imgproc/imgproc.hpp"using namespace cv;   Mat image;
Mat imageGray;
int thresh=5;   //角点个数控制
int MaxThresh=255;void Trackbar(int,void*);  int main(int argc,char*argv[])
{  image=imread(argv[1]);cvtColor(image,imageGray,CV_RGB2GRAY);GaussianBlur(imageGray,imageGray,Size(5,5),1); // 滤波namedWindow("Corner Detected");createTrackbar("threshold:","Corner Detected",&thresh,MaxThresh,Trackbar);imshow("Corner Detected",image);Trackbar(0,0);waitKey();return 0;
}  void Trackbar(int,void*)
{Mat dst,imageSource;dst=Mat::zeros(image.size(),CV_32FC1);  imageSource=image.clone();vector<Point2f> corners;  goodFeaturesToTrack(imageGray,corners,thresh,0.01,10,Mat());for(int i=0;i<corners.size();i++){circle(imageSource,corners[i],2,Scalar(0,0,255),2);}imshow("Corner Detected",imageSource);
}

goodFeaturesToTrack相比cornerHarris,增加了检测的复杂度,同时也可以更好的控制检测到的角点的特性,比如角点个数,角点间最小间距等。设置检测点数为11时,只有特征值最大的前11个角点被检测出来:

继续增大检测点数的值,所有角点都被检测出来:

goodFeaturesToTrack——Shi-Tomasi角点检测相关推荐

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

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

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

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

  3. 检测实现OpenCV2.4.4实现Shi-Tomasi角点检测(goodFeaturesToTrack)

    最近研究检测实现,稍微总结一下,以后继续补充: #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgp ...

  4. fast角点检测 java_opencv3_java 图像的角点检测DetectConers goodFeaturesToTrack

    图像的角点检测DetectConers goodFeaturesToTrack package opencv_java_demo; import org.opencv.core.*; import o ...

  5. 【opencv】goodFeaturesToTrack源码分析-2-Shi-Tomasi角点检测

    本文章是[opencv]goodFeaturesToTrack源码分析-1的后续,主要描述Shi-Tomasi角点检测算法原理及opencv实现. 1.算法原理 Shi-Tomasi算法是Harris ...

  6. 【OpenCV3经典编程100例】(26)2D特征:Shi-Tomasi角点检测goodFeaturesToTrack()函数

    二.opencv函数原型和参数解析 void goodFeaturesToTrack(InputArray image,//输入图像,必须是单通道OutputArray corners,//检测到的角 ...

  7. OpenCV Shi-Tomasi角点检测

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

  8. opencv角点检测学习总结

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

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

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

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

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

最新文章

  1. 纪念机器翻译概念的诞生:重新认识瓦伦·韦弗先生
  2. 计算程序运行时间(.net1.1 于.net2.0的区别)在.net2.0中提供了Stopwatch类,简单例子...
  3. 初等数论--原根--原根间的关系,原根个数
  4. 【Linux】Linux中Vim基础
  5. 使用date命令来修改系统日期与时间
  6. ssh WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  7. python写一个路径选择app_django下创建多个app并设置urls方法
  8. Java番外篇2——jdk8新特性
  9. vue 一直加载_Vue无限加载vue-infinite-loading使用详解
  10. laravel 模型里自定义属性_关于Laravel 7 的简单隐式路由模型绑定
  11. 用VC实现GIS系统基本功能
  12. ubuntu php 错误,Ubuntu下如何开启PHP错误提示教程
  13. JellyViewPager
  14. matlab生成pdf报告,MATLAB发布代码---生成文档pdf
  15. 如何在通达信软件上随意画图_怎样在通达信软件中加入写字画箭头的涂画工具?...
  16. C#实现微信网页授权
  17. JavaScript栈和队列方法(Array类型)
  18. 巴比特 | 元宇宙每日必读:42.46%的人年薪超过20万,元宇宙人才没有想象中的金贵?...
  19. idea项目误删恢复
  20. phpwind安装空白问题解决

热门文章

  1. ValueError: Error initializing torch.distributed using tcp:// rendezvous: port number missing
  2. 程序员不要总想着四两拨千斤
  3. QScrollArea qt滚动区域的简单使用
  4. 帝国cms html广告,帝国cms加入JS广告代码不显示的解决办法
  5. 甘肃省房屋过户费用计算机,2017二手房过户费计算器
  6. 新年新气象 新年新打算
  7. web网页设计期末课程大作业——电影介绍5页HTML+CSS制作
  8. phalapi做登录检测_PhalApi框架使用笔记
  9. weblogic 启动很慢_【转】解决weblogic启动慢和创建域慢的方法
  10. 目前大多数计算机工作原理采用的是,计算机应用基础复习题2016有答案