You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SimpleITK技术问题:如何在不改变像素间距的情况下调整图像形状

保持像素间距的CT图像形状调整方案

要在不改变像素间距、不丢失有效信息的前提下,将CT图像从原形状(66, 47, 21)(对应数组的Z,Y,X维度)调整为目标形状[64,64,16](X,Y,Z维度),核心思路是对各维度分别进行居中裁剪(原尺寸大于目标时)或背景填充(原尺寸小于目标时),全程保留原有像素的间距和有效信息。

关键前提:明确SITK的维度顺序

  • SITK读取的图像,GetSize()返回的尺寸顺序是**(X, Y, Z)**(对应二维平面的宽、高,以及切片数量)
  • sitk.GetArrayFromImage()返回的数组形状是**(Z, Y, X)**,和图像尺寸顺序相反,后续处理时需注意对应关系

实现代码

import SimpleITK as sitk

# 读取CT图像
filename = "your_ct_file.nii.gz"
image = sitk.ReadImage(filename)

# 获取原图像的核心参数
original_size = image.GetSize()  # 顺序:(X, Y, Z)
original_spacing = image.GetSpacing()  # 像素间距,顺序:(X, Y, Z)
target_size = [64, 64, 16]  # 目标尺寸,顺序:(X, Y, Z)

# 计算各维度的裁剪/填充参数
crop_lower = [0, 0, 0]  # 各维度从起始端裁剪的数量
crop_upper = [0, 0, 0]  # 各维度从末端裁剪的数量
pad_lower = [0, 0, 0]   # 各维度从起始端填充的数量
pad_upper = [0, 0, 0]   # 各维度从末端填充的数量

for dim_idx in range(3):
    orig_dim = original_size[dim_idx]
    target_dim = target_size[dim_idx]
    if orig_dim > target_dim:
        # 原尺寸大于目标,居中裁剪
        diff = orig_dim - target_dim
        crop_lower[dim_idx] = diff // 2
        crop_upper[dim_idx] = diff - crop_lower[dim_idx]
    elif orig_dim < target_dim:
        # 原尺寸小于目标,居中填充
        diff = target_dim - orig_dim
        pad_lower[dim_idx] = diff // 2
        pad_upper[dim_idx] = diff - pad_lower[dim_idx]

# 执行裁剪和填充操作
cropped_image = sitk.Crop(image, crop_lower, crop_upper)
# 填充背景值设为CT空气的HU值(-1000),可根据实际情况调整
padded_image = sitk.Pad(cropped_image, pad_lower, pad_upper, constantValue=-1000)

# 验证像素间距是否保留
assert padded_image.GetSpacing() == original_spacing, "像素间距被改变"

# 转换为数组,调整维度顺序以匹配目标形状[64,64,16](X,Y,Z)
resized_array = sitk.GetArrayFromImage(padded_image).transpose(2, 1, 0)
print(f"调整后的数组形状:{resized_array.shape}")  # 输出:(64, 64, 16)

方案说明

  1. 裁剪逻辑:当原维度尺寸大于目标时,采用居中裁剪,尽量保留图像的核心区域,避免丢失关键解剖结构信息。
  2. 填充逻辑:当原维度尺寸小于目标时,在边缘填充CT图像的标准背景值(-1000,对应空气),保证图像的灰度一致性。
  3. 像素间距保留:sitk.Crop和sitk.Pad仅调整图像的空间范围(原点和尺寸),不会修改像素间距属性,原有像素的物理间距完全不变。

内容的提问来源于stack exchange,提问作者Sta Hamid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:57:45