> 文章列表 > opencv:了解Shi-Tomasi角点检测器及其使用

opencv:了解Shi-Tomasi角点检测器及其使用

opencv:了解Shi-Tomasi角点检测器及其使用

目标 在本章中,我们将学习另一种角点检测器:Shi-Tomasi角点检测器,并且探索函数cv.goodFeaturesToTrack()的使用方法。

理论 在上一章中,我们学习了Harris角点检测器。后来,在1994年,石屹和托马斯对其进行了一些小的修改,提出了《Good Features to Track》这篇论文,相比于Harris角点检测器,这种方法表现更佳。Harris角点检测器中的评分函数如下:

R = λ1λ2 - k(λ1 + λ2)²

与此相反,Shi-Tomasi 提出了:

R = min(λ1, λ2)

如果 R 大于某个阈值,则将其视为角点。如果我们像在 Harris 角点检测器中那样在 λ1-λ2 空间中绘制它,我们将得到如下图像

 

从图中可以看出,只有当λ1和λ2都高于最小值λmin时,才会被视为角点(绿色区域)。

代码

OpenCV提供了一个函数:cv.goodFeaturesToTrack()。它通过Shi-Tomasi方法(或者指定的Harris角点检测)在图像中找到N个最强的角点。和往常一样,图像应该是灰度图像。然后您需要指定要查找的角点数。接着,您需要指定质量水平,这是一个介于0-1之间的值,表示低于该角点