我有一个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库的新手。非常感谢。
答案 0 :(得分: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)