#我在做分割影像组学实验
分割出来的mask大小为128×128×128,spacing为1×1×1,但是我训练验证的图像标签大小是128×128×128,spacing不是统一的,我想做影像组学实验的时候,是不是要把图像和分割出来的mask,他俩的size和spacing统一?
或者帮我改一下下面这段代码,我写的代码虽说是能把size和spacing改成128×128×128和1×1×1,但是内容被剪裁了很多
附:我写的代码
import os
import SimpleITK as sitk
def resize_nii_files(input_directory, output_directory, new_size=(128, 128, 128)):
for filename in os.listdir(input_directory):
if filename.endswith('.nii.gz'):
input_filepath = os.path.join(input_directory, filename)
output_filepath = os.path.join(output_directory, filename)
image = sitk.ReadImage(input_filepath)
# 获取当前尺寸和间距
current_size = image.GetSize()
current_spacing = image.GetSpacing()
# 调整图像大小
resampler = sitk.ResampleImageFilter()
resampler.SetSize(new_size)
resampled_image = resampler.Execute(image)
# 插值调整间距
resampled_spacing = [current_spacing[i] * current_size[i] / new_size[i] for i in range(3)]
resampled_image.SetSpacing(resampled_spacing)
# 更新为1x1x1
resampled_spacing = [1.0, 1.0, 1.0]
resampled_image = sitk.Resample(resampled_image, new_size, sitk.Transform(), sitk.sitkLinear, resampled_image.GetOrigin(), resampled_spacing, resampled_image.GetDirection(), 0.0, resampled_image.GetPixelID())
# 保存调整后的图像
sitk.WriteImage(resampled_image, output_filepath)
# 指定输入和输出目录
input_directory = 'xxx'
output_directory = 'yyy'
# 创建输出目录
if not os.path.exists(output_directory):
os.makedirs(output_directory)
# 调整所有.nii.gz文件
resize_nii_files(input_directory, output_directory)