OpenCV之Shi-Tomasi角点检测
除了利用进行角点检测外,还可以利用Shi-方法进行角点检测。Shi-算法是算法的改进。实现此算法的函数名为,这是因为概算子是1994年在文章《Good to Track》中被提出的。
确定图像强角点:()函数
()函数结合了Shi-算子,用于确定图像的强角点,函数原型:
void goodFeaturesTrack(InputArray image, OutputArray corner, int maxCorners, double qualityLeval, double minDistance, Inputarray mask=noArray, int blockSize=3, bool useHarrisDetector=false, double k=0.4)
此外,()函数可用来初始化一个基于点的对象跟踪操作。
代码示例:
#include
#include
#include
#include
#include using namespace std;
using namespace cv;int main() {int maxCornerNumber = 50;Mat srcImage, grayImage;srcImage = imread("/Users/dwz/Desktop/cpp/1.jpg");cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);vector corners;double qualityLevel = 0.01;double minDistance = 10;int blockSize = 3;double k = 0.04;Mat copy = srcImage.clone();goodFeaturesToTrack(grayImage,corners, // 输入图像maxCornerNumber, // 检测到的角点qualityLevel, // 角点的最大角点数量minDistance, //Mat(),blockSize,false,k);int r = 4;for (unsigned int i=0; i
输入:
输出: