SimpleITK实现3D CT图像正视图可视化及Mask叠加
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()
这段代码实现了以下功能:
- 读取文件夹下所有.nii.gz格式的3D CT图像
- 使用SimpleITK库进行图像处理
- 提取并可视化CT图像的正视图
- 加载并叠加显示对应的Mask
- 支持用户逐张浏览图像
请将代码中的/path/to/folder替换为实际的文件夹路径。在每次可视化后,代码会暂停并等待用户选择下一张图片。
原文地址: https://www.cveoy.top/t/topic/fzz1 著作权归作者所有。请勿转载和采集!