这两天在看OpenCV中的跟踪与运动这一块,跟踪和运动是一个很大的课题,里面的涉及的内容有很多,按着自己的学习进度上,简要的做个总结。
在我们处理一段视频而非某张静止的图片时,我们往往会去关注画面中的一个或者几个物体。对运动的物体的关注,我们处理的方式往往不是将整个物体都作为关注对象,而是选取几个独特的特征点去跟踪,这样我们就引出了角点的概念。
(1)角点
角点在运动与跟踪的研究中,就是说可以拿来作为跟踪的特征点都被称为角点。通俗直观的解释就是,一类含有足够信息且能从当前帧和下一帧中都能提取出来的点。
(2)角点的具体描述
a.一阶导数的局部最大所对应的像素点;
b.两条及两条以上边缘的交点;
c.图像中梯度值和梯度方向的变化速率都很高的点;
d.角点处的一阶导数最大,二阶导数为0,指示物体边缘变化不连续的方向。
(3)Harris角点检测算法简述
Harris角点检测算子是依据自相关函数给出的,得出了矩阵M,矩阵M中的特征值是自相关函数的一阶曲率,如果一阶曲率都很高的话,那么就可以认为这个是特征点。
下面给出图来直观的解释下:
图(a)是窗口在图像的平滑区域滑动,窗口在各个方向上没有变化,图(b)窗口在边缘方向上没有变化,图(c)窗口在各个方向上有变化,此时即为角点。
Harris角点的检测,相对于一幅图像来看,主要和自相关函数的曲率特性有关。自相关函数描述了局部图像灰度的变化程度,主要可以表示为:
上式中,E是窗口平移产生的图像灰度变化,也即是自相关函数,w是窗口,I是图像灰度。对上式进行展开即有:
其中
而对于小的偏移: