关键点跟踪与光流算法详解
1. 亚像素位置计算
在图像分析中,我们会遇到亚像素位置计算的问题。输入图像是用于计算角点的原始图像,角点数组包含整数像素位置,例如通过 cv::goodFeaturesToTrack() 函数得到的角点位置,这些位置作为角点位置的初始猜测。
亚像素位置的实际计算使用点积表达式系统,这些表达式表示的组合之和应为零。参数 winSize 指定生成这些方程的窗口大小,该窗口以原始整数角点位置为中心,向各个方向扩展 winSize 指定的像素数。这些方程形成一个线性系统,可以通过单个自相关矩阵的求逆来求解。但在实际中,由于靠近点 p 的像素产生的小特征值,该矩阵并不总是可逆的。为避免这种情况,通常会忽略点 p 紧邻区域的像素。参数 zeroZone 定义了一个窗口(类似于 winSize ,但范围更小),该窗口内的像素不会用于约束方程系统,因此也不会用于自相关矩阵的计算。如果不需要这样的零区域,则将该参数设置为 cv::Size(-1,-1) 。
当找到新的位置 q 后,算法将以该值为起点进行迭代,直到达到用户指定的终止准则。终止准则可以是 cv::TermCriteria::MAX_ITER 或 cv::TermCriteria::EPS (或两者),通常使用 cv::TermCriteria() 函数构
超级会员免费看
订阅专栏 解锁全文
2523

被折叠的 条评论
为什么被折叠?



