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('按任意键继续...')

代码说明:

  1. 导入必要的库: - os: 用于处理文件和文件夹。 - nibabel: 用于读取和处理.nii.gz格式的医学图像。 - matplotlib.pyplot: 用于图像可视化。

  2. 设置文件夹路径: - 将'path_to_folder'替换为你想读取的文件夹的路径。

  3. 获取文件名: - 获取指定文件夹下所有以.nii.gz结尾的文件名。

  4. 遍历文件并可视化: - 循环读取每个.nii.gz文件。 - 使用nibabel加载图像数据。 - 提取图像的正视图。 - 使用matplotlib显示正视图。 - 尝试加载与当前图像同名的_mask.nii.gz文件作为mask。 - 如果mask文件存在,则将其以半透明的形式叠加在正视图上。 - 暂停程序,等待用户按任意键后继续显示下一张图像。

使用方法:

  1. 将代码保存为.py文件。2. 将代码中的'path_to_folder'替换为你存放.nii.gz文件的文件夹路径。3. 运行代码,程序将逐个显示文件夹下的所有图像及其mask。

注意:

  • 代码假设每个图像文件都有一个对应的mask文件,并以_mask.nii.gz命名。- 你可以根据需要修改代码,例如更改颜色映射、调整透明度等。
Python可视化:逐个查看三维医学图像 (.nii.gz) 及其Mask

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

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