Python可视化:逐个查看三维医学图像 (.nii.gz) 及其Mask
Python可视化:逐个查看三维医学图像 (.nii.gz) 及其Mask
本文介绍如何使用Python读取文件夹下所有.nii.gz格式的三维医学图像,并实现逐个可视化正视图及其对应的mask。
**代码示例:**pythonimport osimport nibabel as nibimport matplotlib.pyplot as plt
定义文件夹路径folder_path = 'path_to_folder'
获取文件夹下所有的文件名file_names = [file for file in os.listdir(folder_path) if file.endswith('.nii.gz')]
遍历文件夹中的每个文件for file_name in file_names: # 读取nii.gz文件 file_path = os.path.join(folder_path, file_name) img = nib.load(file_path) img_data = img.get_fdata() # 提取正视图 front_view = img_data[:, :, img_data.shape[2]//2] # 可视化正视图 plt.figure() plt.imshow(front_view, cmap='gray') plt.title(file_name) # 加载对应的mask mask_name = file_name.split('.')[0] + '_mask.nii.gz' mask_path = os.path.join(folder_path, mask_name) if os.path.exists(mask_path): mask = nib.load(mask_path).get_fdata() plt.imshow(mask[:, :, mask.shape[2]//2], cmap='jet', alpha=0.5) # 暂停并等待用户选择下一张图片 plt.show() input('按任意键继续...')
代码说明:
-
导入必要的库: -
os: 用于处理文件和文件夹。 -nibabel: 用于读取和处理.nii.gz格式的医学图像。 -matplotlib.pyplot: 用于图像可视化。 -
设置文件夹路径: - 将
'path_to_folder'替换为你想读取的文件夹的路径。 -
获取文件名: - 获取指定文件夹下所有以
.nii.gz结尾的文件名。 -
遍历文件并可视化: - 循环读取每个
.nii.gz文件。 - 使用nibabel加载图像数据。 - 提取图像的正视图。 - 使用matplotlib显示正视图。 - 尝试加载与当前图像同名的_mask.nii.gz文件作为mask。 - 如果mask文件存在,则将其以半透明的形式叠加在正视图上。 - 暂停程序,等待用户按任意键后继续显示下一张图像。
使用方法:
- 将代码保存为
.py文件。2. 将代码中的'path_to_folder'替换为你存放.nii.gz文件的文件夹路径。3. 运行代码,程序将逐个显示文件夹下的所有图像及其mask。
注意:
- 代码假设每个图像文件都有一个对应的mask文件,并以
_mask.nii.gz命名。- 你可以根据需要修改代码,例如更改颜色映射、调整透明度等。
原文地址: https://www.cveoy.top/t/topic/fzzg 著作权归作者所有。请勿转载和采集!