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

如何使用python计算opencv中由3D点组成的圆弧的弧长?,python,opencv,Python,Opencv,我用离散点采样了一条曲线。 这不是一条闭合曲线。 我想计算弧长。 在opencv中,arclength函数获取2D点 有什么想法吗 非常感谢请记住,取离散点这将是一个估计值,但计算弧长的粗略方法是将后续点之间的弧长求和。因此,如果x是闭合曲线上采样2D点的有序列表: sum( magnitude(x[i]-x[i+1]) for i in range(len(points)-1) ) 如果你知道曲线的一些其他属性,你也许可以更准确地计算它 同样的技术也适用于更高维度的向量,您可以使用以下通用

我用离散点采样了一条曲线。 这不是一条闭合曲线。 我想计算弧长。 在opencv中,arclength函数获取2D点

有什么想法吗


非常感谢

请记住,取离散点这将是一个估计值,但计算弧长的粗略方法是将后续点之间的弧长求和。因此,如果
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) )

@Shan我错了,
震级
只适用于2D向量,所以你需要概括一下-我更新了我的答案,将其纳入其中。