goodFeaturesToTrack——Shi-Tomasi角点检测
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角点检测相关推荐
- 【OpenCV3】角点检测——cv::goodFeaturesToTrack()与cv::cornerSubPix()详解
一提到角点检测,最常用的方法莫过于Harris角点检测,opencv中也提供了Harris角点检测的接口,即cv::cornerHarris(),但是Harris角点检测存在很多缺陷(如角点是像素级别 ...
- OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测
在图像处理和与计算机视觉领域,兴趣点(interest points),或称作关键点(keypoints).特征点(feature points) 被大量用于解决物体识别,图像识别.图像匹配.视觉跟踪 ...
- 检测实现OpenCV2.4.4实现Shi-Tomasi角点检测(goodFeaturesToTrack)
最近研究检测实现,稍微总结一下,以后继续补充: #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgp ...
- fast角点检测 java_opencv3_java 图像的角点检测DetectConers goodFeaturesToTrack
图像的角点检测DetectConers goodFeaturesToTrack package opencv_java_demo; import org.opencv.core.*; import o ...
- 【opencv】goodFeaturesToTrack源码分析-2-Shi-Tomasi角点检测
本文章是[opencv]goodFeaturesToTrack源码分析-1的后续,主要描述Shi-Tomasi角点检测算法原理及opencv实现. 1.算法原理 Shi-Tomasi算法是Harris ...
- 【OpenCV3经典编程100例】(26)2D特征:Shi-Tomasi角点检测goodFeaturesToTrack()函数
二.opencv函数原型和参数解析 void goodFeaturesToTrack(InputArray image,//输入图像,必须是单通道OutputArray corners,//检测到的角 ...
- OpenCV Shi-Tomasi角点检测
Shi-Tomasi算法是对Harris角点检测算法的改进,一般会比Harris算法得到更好的角点.Harris 算法的角点响应函数是将矩阵 M 的行列式值与 M 的迹相减,利用差值判断是否为角点.后 ...
- opencv角点检测学习总结
学习opencv 角点检测 如果一个点在两个正交方向上都有明显的导数,则我们认为此点更倾向于是独一无二的,所以许多可跟踪的特征点都是角点. 一下为角点检测中用到的一些函数 cvGoodFeatures ...
- OpenCV之feature2d 模块. 2D特征框架(1)Harris 角点检测子 Shi-Tomasi角点检测子 定制化创建角点检测子 亚像素级的角点检测 特征点检测
Harris 角点检测子 目标 本教程中我们将涉及: 有哪些特征?它们有什么用? 使用函数 cornerHarris 通过 Harris-Stephens方法检测角点. 理论 有哪些特征? 在计算机视 ...
- 角点检测:Harris角点及Shi-Tomasi角点检测
角点 特征检测与匹配是Computer Vision 应用总重要的一部分,这需要寻找图像之间的特征建立对应关系.点,也就是图像中的特殊位置,是很常用的一类特征,点的局部特征也可以叫做"关键特 ...
最新文章
- 纪念机器翻译概念的诞生:重新认识瓦伦·韦弗先生
- 计算程序运行时间(.net1.1 于.net2.0的区别)在.net2.0中提供了Stopwatch类,简单例子...
- 初等数论--原根--原根间的关系,原根个数
- 【Linux】Linux中Vim基础
- 使用date命令来修改系统日期与时间
- ssh WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- python写一个路径选择app_django下创建多个app并设置urls方法
- Java番外篇2——jdk8新特性
- vue 一直加载_Vue无限加载vue-infinite-loading使用详解
- laravel 模型里自定义属性_关于Laravel 7 的简单隐式路由模型绑定
- 用VC实现GIS系统基本功能
- ubuntu php 错误,Ubuntu下如何开启PHP错误提示教程
- JellyViewPager
- matlab生成pdf报告,MATLAB发布代码---生成文档pdf
- 如何在通达信软件上随意画图_怎样在通达信软件中加入写字画箭头的涂画工具?...
- C#实现微信网页授权
- JavaScript栈和队列方法(Array类型)
- 巴比特 | 元宇宙每日必读:42.46%的人年薪超过20万,元宇宙人才没有想象中的金贵?...
- idea项目误删恢复
- phpwind安装空白问题解决
热门文章
- ValueError: Error initializing torch.distributed using tcp:// rendezvous: port number missing
- 程序员不要总想着四两拨千斤
- QScrollArea qt滚动区域的简单使用
- 帝国cms html广告,帝国cms加入JS广告代码不显示的解决办法
- 甘肃省房屋过户费用计算机,2017二手房过户费计算器
- 新年新气象 新年新打算
- web网页设计期末课程大作业——电影介绍5页HTML+CSS制作
- phalapi做登录检测_PhalApi框架使用笔记
- weblogic 启动很慢_【转】解决weblogic启动慢和创建域慢的方法
- 目前大多数计算机工作原理采用的是,计算机应用基础复习题2016有答案