【发布时间】:2012-09-12 14:31:12
【问题描述】:
我有一条使用离散点采样的曲线。 它不是闭合曲线。 我想计算弧长。 在 opencv 中,arclength 函数采用 2D 点。
有什么想法吗?
非常感谢
【问题讨论】:
我有一条使用离散点采样的曲线。 它不是闭合曲线。 我想计算弧长。 在 opencv 中,arclength 函数采用 2D 点。
有什么想法吗?
非常感谢
【问题讨论】:
请记住,这将是一个估计值,但计算弧长的粗略方法是简单地将后续点之间的 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) )
【讨论】:
magnitude 仅适用于 2D 向量,因此您需要进行概括 - 我已经更新了我的答案以纳入这一点。