Как создать поверхность сетки из файла MRI сегментации с помощью Python и VTK

У меня есть двоичная маска трехмерных медицинских изображений в формате nifti, "mask.nii.gz", из которой я хотел бы извлечь сетку поверхности.

Я могу загрузить данные двоичной маски в numpy.ndarray следующим образом

import numpy as np
import nibabel as nib
filePath = "mask.nii.gz"
image = nib.load(filePath)
image_data = image.get_data()

но не уверен, как визуализировать поверхность с помощью vtkDiscreteMarchingCubes(), используя приведенные выше image_data, и вывести вершины с визуализированной поверхности.

Может ли кто-нибудь пролить свет на эту проблему? Извините, я новичок в библиотеке VTK. Спасибо заранее.

1 ответ

Решение

Вы можете создать сетку с skimage.measure, с помощью marching_cubesВ вашем случае попробуйте преобразовать nib.image в numpy ndarray

image_ndarray = np.array(imgage.dataobj).astype(np.float64)
verts, faces, norm, val = measure.marching_cubes_lewiner(image, threshold, step_size=step_size, allow_degenerate=True)
Другие вопросы по тегам