使用SimpleITK实现3D CT图像和Mask的可视化

本教程提供一个Python代码示例,演示如何使用SimpleITK库读取一个文件夹下所有的(.nii.gz)格式的三维CT图像,提取正视图并进行可视化,并在同一窗口中加载对应的mask。用户可以控制图像显示,每显示一张图像后暂停,等待用户操作后加载下一张图像。

**代码:**pythonimport SimpleITK as sitkimport matplotlib.pyplot as pltimport os

设置文件夹路径folder_path = 'path_to_folder' # 请替换为实际的CT图像文件夹路径mask_folder_path = 'path_to_mask' # 请替换为实际的Mask文件夹路径

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

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

# 读取对应的mask图像    mask_file = file  # 假设mask文件名与CT图像名相同,可根据实际情况修改    mask_path = os.path.join(mask_folder_path, mask_file)    mask = sitk.ReadImage(mask_path)

# 提取正视图    image_array = sitk.GetArrayFromImage(image)    mask_array = sitk.GetArrayFromImage(mask)    sagittal_slice = image_array[image_array.shape[0] // 2, :, :]    mask_slice = mask_array[mask_array.shape[0] // 2, :, :]

# 可视化正视图和mask    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))    ax1.imshow(sagittal_slice, cmap='gray')    ax1.set_title('CT Image')    ax1.axis('off')    ax2.imshow(mask_slice, cmap='gray')    ax2.set_title('Mask')    ax2.axis('off')    plt.show()

# 等待用户选择下一张图片    input('按Enter键继续...')

代码说明:

  1. 替换 'path_to_folder''path_to_mask' 为实际的文件夹路径.2. 代码假设每个CT图像文件都有一个对应的mask文件,且文件名相同。3. 代码提取了CT图像和mask的正视图进行可视化,您也可以根据需要修改代码以获取其他方向的切片。

希望这篇教程能帮助您使用SimpleITK库进行医学图像的可视化!

Python SimpleITK教程:读取、可视化nii.gz格式3D CT图像及Mask

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

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