zaza 0 Жалоба Опубликовано May 8, 2011 Здравствуйте! У меня есть набор точек, по которым надо построить полигональную сетку, где полигоны - треугольники. Нашла функцию cvCreateSubdivDelaunay2D. Но в примерах на нее ничего нет. Может ее использовал кто? Или есть другие способы для достижения цели? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 8, 2011 В примерах: delaunay.c Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
zaza 0 Жалоба Опубликовано May 8, 2011 а какие-либо другие способы\функции\алгоритмы есть? у меня нет точной уверенности, что триангуляцию делоне можно будет использовать (не факт, что внутри окружности не будет точек) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 9, 2011 Тогда я не совсем понял задачу (причем тут окружность?). Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
zaza 0 Жалоба Опубликовано May 9, 2011 Триангуляцией Делоне для множества точек S на плоскости называют триангуляцию DT(S), такую что никакая точка A из S не содержится внутри окружности, описанной вокруг любого треугольника из DT(S), такого, что ни одной из вершин его не является точка A. У меня же есть набор точек, по которым надо построить полигональную сетку. Есть вероятность, что такой тип триангуляции не подойдет. И вопрос - есть ли алгоритмы для такого построения ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 9, 2011 Что то типа этого: http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf или этого: http://www.cs.unc.edu/~dm/CODE/GEM/chapter.html ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
zaza 0 Жалоба Опубликовано May 9, 2011 по типу этого) а можно вообще построить поверхность по облаку точек, учитывая близость точек? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 9, 2011 Тут обсуждалась библиотека для работы с облаком точек: http://www.compvision.ru/forum/index.php?showtopic=480 Еще CGAL это может. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
zaza 0 Жалоба Опубликовано May 9, 2011 Спасибо) и еще вопрос - cvCreateSubdivDelaunay2D ведь для двумерных точек? а альтернатива для трехмерного есть? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dr.Hell 5 Жалоба Опубликовано May 9, 2011 Тоже очень интересует этот вопрос. Вот тут вроде бы расписано, а все равно нифига не понятно... http://www.wiziq.com/tutorial/20171-feb-21-lecture-one-Algorithms-in-Geometry-and-Topo Задача усложняется тем, что Convex Hull 3D делает вместо модели "подарочную упаковку" (пример с зайцем отсюда), то есть подходит только для совсем выпуклых моделей без выступающих частей. А триангуляция Делоне соединяет вообще все точки, даже те, которые находятся внутри предполагаемой модели, а в итоге тоже получается "подарочная упаковка", да еще и с кучей вершин внутри. Единственный вариант, который на мой взгляд будет давать хорошие результаты, это когда у нас облако точек представляет собой частую сетку с фиксированным шагом, тогда можно соединять соседние точки, проверяя их критерием Делоне. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
zaza 0 Жалоба Опубликовано May 10, 2011 и все же интересно, возможна ли, используя возможности OpenCV, триангуляция облака точек внутри контура, да к тому и трехмерная? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах