【问题标题】:how to calculate arc length of the arc consisting of 3D points in opencv using python?如何使用python计算opencv中由3D点组成的弧的弧长?
【发布时间】:2012-09-12 14:31:12
【问题描述】:

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

有什么想法吗?

非常感谢

【问题讨论】:

    标签: python opencv


    【解决方案1】:

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

    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 我弄错了,magnitude 仅适用于 2D 向量,因此您需要进行概括 - 我已经更新了我的答案以纳入这一点。
    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多