前言:对于任何一个物体,其组成部分大概可以用三大类表示:边缘、角点和斑点
- 边缘(edges): Areas with a high intensity gradient . 分布在梯度强度区域
- 角点(corners): At the intersection of two edges. 两个边缘的角点
- 斑点(blocks): Region-based features; areas of extreme brightness or unique texture .
其中,角点是重复率最高的,也是应用比较广泛的
1、Corners detection(角点检测)
由于本文中用到的角点检测函数是OpenCV集成的函数Harris Corner Detection,所以想要查看此函数的详细内容的请点击这里Harris Corner Detection
(1)、首先简单的介绍一下进行角点检测的一般性步骤
- 首先对两幅图进行Sobel边缘检测,因为角点是两条边缘的交点,所以若想进行角点检测,首先需要进行边缘检测,如下图所示对,注意在这里相较于进行边缘检测,没有进行二值化处理,只是进行Sobel_X和Sobel_Y的变换。
- 接下来将XY坐标系下的像素分布,转换成极坐标的像素分布;具体的转换公式见下面两个公式:
Magnitude:
经过上面两个公式的转化,实际上是将Sobel_x和Sobel_y两个分梯度图合称了一个总的梯度图,为接下来的操作做准备,类似于下面这幅图
- 接下来进行两个操作
(1)、Shift a window around an area in an image.
(2)、Check for a big variation in the direction and magnitude of the gradient.