Python SimpleITK教程:读取、可视化nii.gz格式3D CT图像及Mask
使用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键继续...')
代码说明:
- 替换
'path_to_folder'和'path_to_mask'为实际的文件夹路径.2. 代码假设每个CT图像文件都有一个对应的mask文件,且文件名相同。3. 代码提取了CT图像和mask的正视图进行可视化,您也可以根据需要修改代码以获取其他方向的切片。
希望这篇教程能帮助您使用SimpleITK库进行医学图像的可视化!
原文地址: https://www.cveoy.top/t/topic/fzzk 著作权归作者所有。请勿转载和采集!