Примерно для среднего расстояния до ближайшего соседа?

И еще один алгоритм, который я ищу: бесплатная реализация на C / C ++ задачи среднего расстояния до ближайшего соседа.

Итак, в основном у меня есть облако точек в 3D, и я хочу получить среднее значение по расстояниям между всеми точками и их ближайшими соседями. Самый простой способ сделать это - найти ближайшего соседа для каждой точки, вычислить расстояние от этого соседа до точки и разделить сумму этих расстояний на количество точек. Однако есть гораздо лучшие алгоритмы, так как они имеют большую избыточность и приближения работают еще быстрее. Я ищу бесплатную реализацию этих лучших алгоритмов на C / C ++.

Ε-аппроксимация, если все в порядке.


person con-f-use    schedule 07.09.2011    source источник


Ответы (2)


Библиотека C ++ FLANN позволяет выполнять "быстрое приблизительное определение ближайшего - поиски соседей ". Он написан на C ++ и претендует на звание одной из самых быстрых реализаций такого рода поиска.

Надеюсь это поможет!

person templatetypedef    schedule 07.09.2011

Вы можете попробовать Quadtree, как описано в в этом вопросе. Есть много реализаций вашей проблемы и в других графических библиотеках 3D / 2D.

Несколько лет назад я использовал GEOS, «движок геометрии с открытым исходным кодом», и был очень доволен.

person flob    schedule 07.09.2011