前言
上一篇文章里面我们学习了自定义角点检测器的Harris检测,文章可见《C++ OpenCV特征提取之自定义角点检测器(一)》,在上一篇文章里面有两个API,另一个API就是关于Shi-Tomas检测的自定义角点的检测器,今天我们就来做一下这个。
相关API
C++: void cornerMinEigenVal(
InputArray src, --单通道输入8位或浮点图像
OutputArray dst, --图像存储的最小特征值。类型为CV_32FC1
int blockSize, --邻域大小值
int apertureSize=3, --Sobel算子的参数
int borderType=BORDER_DEFAULT --像素外插方法
)
代码演示
我们继续用上一个项目名为opencv--cornereigen,我先贴一下完整的图片代码
然后我们再定义一下关于Shi-Tomasi的定义
首先加上一个新的显示窗体
然后定义要显示的Mat及Trackbar需要的一些值。
然把在代码中把我们定义的窗体显示出来
在代码最下部分把Shi-Tomasi这部分的计算写出来。
TrackBar事件写法和Harris的基本一样。
接下来我们看看效果
可以看到都是阈值50的时候Harris角点检测出的结果和Shi-Tomasi角点检测出的结果会有差。
我们把阈值调到30后这个就更明显了。
-END-