坐标和运动模型拟合的运动矢量

时间:2017-04-29 21:19:15

标签: python numpy curve-fitting motion polynomials

我编写了一个脚本,使用OpenCV检测3个连续帧上的关键点,然后找到所有3个图像中匹配的点。我尝试做的是通过监视每个匹配点的坐标来估计运动矢量。然后,对于每个匹配点,我使用三个坐标对(frame1,frame2,frame3)并使用numpy.polyfit拟合三次多项式模型。我为每个点循环这个,然后我将4个多项式系数(从每个匹配点计算)存储在4个列表中,最后我将列表中的值平均得出最好的'(?)模型。问题在于数据集中存在异常值,这些异常值会增加系数的标准偏差,导致模型不能充分拟合数据。 我的问题是,是否有一个函数或任何其他方法来摆脱循环。以下是我执行上述操作的脚本部分:

for i in range(len(matc1)):
    x_vs = np.array([matc1[i][0, 0], matn2[i][0, 0], matn3[i][0, 0]])
    y_vs = np.array([matc1[i][0, 1], matn2[i][0, 1], matn3[i][0, 1]])
    coeffs = np.polyfit(x_vs, y_vs, deg=3)
    c1.append(coeffs[0])
    c2.append(coeffs[1])
    c3.append(coeffs[2])
    c4.append(coeffs[3])

c1 = sum(c1)/len(c1)
c2 = sum(c2)/len(c2)
c3 = sum(c3)/len(c3)
c4 = sum(c4)/len(c4)
coeffs = np.array([c1, c2, c3, c4])

0 个答案:

没有答案