В настоящее время я работаю с файлами DICOM-RT (которые содержат DICOM вместе с данными о доставке дозы и файлами набора структур). В основном меня интересует файл "набора структур" (например, RTSS.dcm), который содержит набор точек контура для интересующей области интереса. В частности, контуры окружают объем опухоли. Например, опухоль будет иметь набор из 5 контуров, каждый из которых представляет собой набор точек, окружающих этот срез опухоли.
Я пытаюсь использовать MatLab, чтобы использовать эти точки контура для построения объема опухоли в бинарной трехмерной матрице (0 = неопухоль, 1 = опухоль), и мне нужна помощь.
Один из возможных подходов - заполнить каждый набор контуров как двоичный срез, а затем интерполировать объем между срезами. До сих пор я использовал функцию fill или patch для создания двоичных сечений каждого контурного среза, но мне трудно понять, как интерполировать эти двоичные срезы. в трехмерный объем. Кажется, что ни одна из встроенных функций не применима к этой конкретной проблеме (хотя, может быть, я просто неправильно их использую?). Простая линейная интерполяция тоже не подходит, так как края одного контура должны сливаться с соседним контуром во всех направлениях.
Другой вариант - взять точки и разбить их мозаикой (без предварительного создания срезов). Однако я не знаю, как заставить MatLab тесселять только поверхность опухоли и не пересекать объем опухоли. В настоящее время, кажется, обнаруживаются треугольники внутри опухоли. Если бы я мог получить это просто на поверхности, я тоже не уверен, как это взять и преобразовать в двоичный объем 3D-матрицы.
Есть ли у кого-нибудь опыт работы с методами трехмерной интерполяции или тесселяции, которые могут здесь применяться? Или, возможно, какие-либо существующие соответствующие инструменты? Я застрял... :(
Я открыт для подходов и на других языках: я немного знаком с C # и Python, хотя предполагал, что MatLab будет обрабатывать матричные операции немного проще.
Заранее спасибо!