def check_orientation(ct_image, ct_arr):
"""
Check the NIfTI orientation, and flip to 'RPS' if needed.
:param ct_image: NIfTI file
:param ct_arr: array file
:return: array after flipping
"""
x, y, z = nib.aff2axcodes(ct_image.affine)
if x != 'R':
ct_arr = nib.orientations.flip_axis(ct_arr, axis=0)
if y != 'P':
ct_arr = nib.orientations.flip_axis(ct_arr, axis=1)
if z != 'S':
ct_arr = nib.orientations.flip_axis(ct_arr, axis=2)
return ct_arr
对于第一个问题,您应该检查NIfTI图像的方向,然后按您想要的方向旋转
为了检查方向,我们使用nibabel aff2axcodeshttps://nipy.org/nibabel/reference/nibabel.orientations.html#nibabel.orientations.aff2axcodes
对于旋转,我们将使用nibabel.orientations.flip_axishttps://nipy.org/nibabel/reference/nibabel.orientations.html#nibabel.orientations.flip_axis
'''
'''
请注意,在您的情况下,您只需要翻转z轴,但尝试使用上述功能并根据您的情况进行更改,以便检查数据
最后一件事是将新的NIfTI扫描(NumPy阵列)保存为nii图像。 为此,请使用Nifti1Image创建nii对象,然后使用nibabel.save将其保存到文件中
'''
'''
ct_arr-是您的numpy数组(确保为浮点型)。 第二个参数是加载后的原始NIfTI扫描
在save函数中,确保在文件名中添加后缀.nii或.nii.gz
希望清楚:)
相关问题 更多 >
编程相关推荐