我正在尝试制作一个 SimpleITK 图像,其中我希望特定的体素值为 1,其余的值为 0。我是 SimpleITK 的新手,所以我觉得我错过了一些东西。
无论如何,我有一些我已经生成的索引,我将体素值分配为 1。但是,我希望能够可视化这些样本在空间中相对于彼此的方向。我尝试了多种方法,将一个充满零且所需索引为 1 的数组转换为 NIFTI 图像,但是我仍然无法将其可视化并查看这些点的外观
以下是我尝试过的基本代码片段
def WriteSampleToDisk():
"""Creates an empty image, assigns generated samples with voxel value 1 and writes it to disk.
returns image written to disk"""
img = sitk.Image(512, 512, 416, sitk.sitkInt16)
img.SetOrigin((0, 0, 0))
img.SetSpacing((1, 1, 1))
#Some code to get indices
for i in range(len(dimx)): #Same number of elements in every index dimension
img.SetPixel(dimz[i], dimy[i], dimx[i], 1)#Sitk convention takes z axis as the first axis
arr = sitk.GetArrayFromImage(img)
print(np.argwhere(arr == 1)) --> It's giving me the indices where I have Set the voxel value as 1
sitk.WriteImage(img, "image.nii")
return img
但是,即使设置了阈值,当我尝试在 paraview 上查看它时,我仍然一无所获。这可能是什么原因?有没有办法绕过这个问题?