如何使用python计算opencv中由3D点组成的弧的弧长?

时间:2012-09-12 14:31:12

标签: python opencv

我有一个使用离散点的曲线。   它不是一个封闭的曲线。   我想计算弧长。   在opencv中,arclength函数采用2D点。

有什么想法吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

请记住,采用离散点这将是一个估计值,但计算弧长的粗略方法是简单地将后续点之间的distances/magnitudes求和。因此,如果x是闭合曲线上采样的2D点的有序列表:

sum( magnitude(x[i]-x[i+1]) for i in range(len(points)-1) )

如果你知道关于曲线的其他一些属性,你可以更准确地计算出来......

同样的技术可以应用于更高维度的向量,您可以使用通用公式:

def dist(X,Y):
    return math.sqrt(
                     sum( (X[i] - Y[i])**2 for i in len(range(X)) )
                    )

sum( dist(x[i],x[i+1]) for i in range(len(points)-1) )