2012-06-01 2 views
1

나는 2 메쉬의 Hausdorff 거리를 구현해야합니다. meshes는 인간 기관의 다른 세분화 결과이며, 나는 그것들을 비교해야합니다. 하나의 mesh는 금색 seg입니다. 두 번째는 분할 알고리즘의 결과입니다.Hausdorff 두 메시의 점 사이의 거리

나는 하우스 도르프 거리를 사용해야하지만 정확히 무엇을해야하는지 이해하는 데는 몇 가지 문제가 있습니다. meshB에서 meshA의 각 점에 가장 가까운 점을 계산해야한다는 것을 이해했으며 그 반대의 경우도 마찬가지입니다. 이것은 내 상대 거리입니다. 세트에서 2 개의 해당 점에 대해 최대 상대 거리 => hausdorff를 취합니다. 이제 (내가 얼마나 멀리 그게 전부)

내 문제 : 한 메쉬 ~ 10 점, 다른 하나 ~ 2,000있다. 따라서 n : 1 관계가됩니다. Hausdorff를 계산할 때 어떤 점을 취해야합니까? 어떻게해야합니까? 힌트를 주셔서 감사합니다. 고마워!

답변

0

x and xxy는 거리 공간, 자신의 제품을 만족의 다음 하우스 도르프 차원이다 sum

경우, 유한 또는 가산 조합이면 sum

UPD : 브 루트 포스 알고리즘 :

1. h = 0 
2. for every point ai of A, 
     2.1 shortest = Inf ; 
     2.2 for every point bj of B 
        dij = d (ai , bj) 
        if dij < shortest then 
           shortest = dij 
     2.3 if shortest > h then 
        h = shortest 
+1

나는'python' itertools'product' 메쏘드에서이 작업을 할 수 있다고 생각합니다. http://docs.python.org/library/itertools.html#itertools.product –

+0

구현에 대한 이해가 올바른지 아직 확실하지 않습니다. meshA (PA)의 모든 점에 대해 가장 가까운 이웃으로 PA가있는 meshB의 모든 점을 고려합니다. 이 중 PA의 최대 거리를 hausdorff로 설정했습니다. 이제 meshB와 동일합니다. 그게 내가 어떻게 된거 야? – toobee

+1

질문은 Hausdorff 거리와 Hausdorff 차원에 대한 대답입니다. 그들은 –