如何使用特征库计算曼哈顿距离?

时间:2013-02-05 03:10:48

标签: c++ eigen

我有两个载体,如

int main(int argc, char *argv())
{
.........
Vector3f center(0.4,0.1,0.3) ;
Vector3f point(0.1,0.2,0.7);
.......
}

如何使用特征库计算曼哈顿距离?我正在使用VS2010。

2 个答案:

答案 0 :(得分:6)

只要您知道曼哈顿的距离是多么困难(虽然我之前没有看到用于3D矢量的术语),这并不难 - 只需查看Eigen API文档中的相关函数,然后你会发现以下工作:

Vector3f center(0.4,0.1,0.3) ;
Vector3f point(0.1,0.2,0.7);
Vector3f diff = center - point;
float manh_dist = diff.cwiseAbs().sum();

答案 1 :(得分:4)

另一种方法是观察曼哈顿距离对应于L1范数,该范数可以使用通用lpNorm方法获得:

manh_dist = (center-point).lpNorm<1>();

请参阅此page以供参考。