import SimpleITK as sitk
import os
import matplotlib.pyplot as plt

# 定义文件夹路径
folder_path = '/path/to/folder'  # 请替换为实际的文件夹路径

# 获取文件夹下所有的.nii.gz文件
file_list = [f for f in os.listdir(folder_path) if f.endswith('.nii.gz')]

# 遍历每个文件
for file_name in file_list:
    # 读取CT图像
    image_path = os.path.join(folder_path, file_name)
    image = sitk.ReadImage(image_path)

    # 获取图像的数组
    image_array = sitk.GetArrayFromImage(image)

    # 获取正视图
    axial_slice = image_array[image_array.shape[0] // 2, :, :]

    # 可视化正视图
    plt.imshow(axial_slice, cmap='gray')
    plt.title('CT Image')
    plt.pause(0.001)

    # 加载正视图的mask
    mask_path = os.path.join(folder_path, file_name.replace('.nii.gz', '_mask.nii.gz'))
    mask = sitk.ReadImage(mask_path)
    mask_array = sitk.GetArrayFromImage(mask)
    axial_mask_slice = mask_array[mask_array.shape[0] // 2, :, :]

    # 可视化正视图的mask
    plt.imshow(axial_mask_slice, cmap='jet', alpha=0.5)
    plt.title('CT Image with Mask')
    plt.pause(0.001)

    # 等待用户选择下一张图片
    plt.waitforbuttonpress()

# 关闭窗口
plt.close()

这段代码实现了以下功能:

  1. 读取文件夹下所有.nii.gz格式的3D CT图像
  2. 使用SimpleITK库进行图像处理
  3. 提取并可视化CT图像的正视图
  4. 加载并叠加显示对应的Mask
  5. 支持用户逐张浏览图像

请将代码中的/path/to/folder替换为实际的文件夹路径。在每次可视化后,代码会暂停并等待用户选择下一张图片。

SimpleITK实现3D CT图像正视图可视化及Mask叠加

原文地址: https://www.cveoy.top/t/topic/fzz1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录