一. Moravec基本原理
Moravec是一种基于灰度方差的角点检测算子,该算子计算图像中某个像素点沿着水平、垂直、对角线、反对角线四
个方向的灰度方差,其中的最小值选为该像素点的兴趣值,再通过局部非极大值抑制来检测是否为角点。
二. Moravec计算过程
1. 计算图像中各像素的兴趣值
在以像素为中心的图像窗口(比如)中,计算水平、垂直、对角线、反对角线四个方向的相邻像素灰度
差的平方和,如下所示:
其中,是图像窗口的半径。选取最小的一个值作为像素的兴趣值。
2. 给定一个经验阈值,将兴趣值大于该阈值的像素作为候选角点。选择阈值的原则:候选角点中要包含足够多的真实
角点,伪角点数目应该尽可能少。
3. 局部非极大值抑制选取角点,即在一定大小的窗口中,将候选角点中兴趣值最大的作为角点。
4. 如果两个角点之间的距离过短,那么去掉其中一个角点。
三. Moravec优点和缺点
1. 优点:计算速度快。
2. 缺点:对图像边缘和噪声敏感,并且有方向上的局限性。
四. Moravec的Matlab实现
参考文献:
[1] 视频分析算法60讲
[2] Obstacle Avoidance and Navigation in the Real World by a Seeing Robot Rover