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