如何使用Python和VTK从分割MRI文件创建网格表面

时间:2019-10-23 04:09:56

标签: python vtk neuro-image

我有一个nifti格式的3D医学图像二进制掩码“ 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()

但不确定如何使用上面的image_data使用vtkDiscreteMarchingCubes()渲染表面并从渲染的表面输出顶点。

有人可以阐明这个问题吗?抱歉,我是VTK库的新手。非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用skimage.measuremarching_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)