Как получить кривую от пересечения облака точек и произвольной плоскости? - PullRequest
2 голосов
/ 10 декабря 2011

У меня есть различные облака точек, определяющие RT-STRUCT, называемые ROI из файлов DICOM.Файлы DICOM формируются томографическими сканерами.Каждый ROI сформирован облаком точек и представляет некоторый трехмерный объект.

Цель состоит в том, чтобы получить 2D-кривую, которая сформирована плоскостью, разрезая точку облака ROI.Проблема в том, что я не могу просто использовать точки, которые были пересечены самолетом.Вероятно, мне нужно пересечь вогнутую трехмерную оболочку с некоторой плоскостью и получить результирующий контур пересечения.

Есть ли библиотеки, которые уже реализовали эти операции?Я нашел библиотеку PCL и, возможно, она сможет решить мою проблему, но я не могу понять, как этого добиться с помощью PCL.Кроме того, я также могу использовать Matlab - мы используем его во время выполнения из C ++.

Кто-нибудь уже сталкивался с этой проблемой?

PS Как я уже упоминал выше, мне нужно использоватьрешение из моего кода C ++ - так что это должно быть решение для библиотеки или matlab, которое я буду использовать через Matlab Runtime.

PPS Точность в таких вычислениях действительно важна - она ​​будет использоваться в медицинском программном обеспечениипредназначен для работы с опухолями головного мозга, чтобы вы могли представить себе последствия ошибки (:

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Возможно, вы могли бы просто отбросить точки, которые находятся далеко от плоскости, и спроецировать оставшиеся на плоскость. Вам все еще нужно будет восстановить кривую на плоскости, но есть несколько хороших методов для этого. Например, http://www.cse.ohio -state.edu / ~ tamaldey / curverecon.htm и http://valis.cs.uiuc.edu/~sariel/research/CG/applets/Crust/Crust.html.

1 голос
/ 10 декабря 2011

Сначала необходимо сформировать поверхность из набора точек.

Если для точек можно выбрать двухмерное направление (т. Е. Они образуют выпуклую оболочку на одном виде), вы можете использовать простой двухмерный треугольник Делоне в этих двух координатах.в противном случае вам понадобится полная функция трехмерного всплытия (марширующие кубы или пуассона)

Затем, получив треугольники, просто рассчитать линию контура, по которой их разрезает плоскость.

См. ссылки в Создание сетки из точек с координатами x, y и z

...