pycharm读取nii.gz
时间: 2025-06-08 17:44:24 浏览: 13
### 使用 Python 读取 `.nii.gz` 文件
为了在 PyCharm 中使用 Python 读取 `.nii.gz` 文件,可以采用 `nibabel` 库来加载这些文件。以下是具体实现方法:
安装所需的库可以通过命令行工具 pip 完成:
```bash
pip install nibabel numpy matplotlib
```
接着,在 PyCharm 的项目环境中创建一个新的 Python 脚本,并输入以下代码片段以完成数据的读取与可视化操作。
#### 加载 NIfTI 数据并显示三维切片图
```python
import os
import nibabel as nib
from nibabel.viewers import OrthoSlicer3D
import matplotlib.pyplot as plt
import numpy as np
def load_and_show_nifti(file_path):
# Load the image data using nibabel.
img = nib.load(file_path)
# Access raw data array from loaded object.
img_data = img.get_fdata()
# Show ortho-sliced view of 3D volume with interactive window (optional).
viewer = OrthoSlicer3D(img.dataobj)
viewer.show()
# Alternatively, plot a single slice along each axis for demonstration purposes.
fig, axes = plt.subplots(1, 3, figsize=(15, 5))
# Sagittal plane (X-axis), Coronal plane (Y-axis), Axial plane (Z-axis)
midpoints = tuple(dim // 2 for dim in img.shape[:3])
sagittal_slice = img_data[midpoints[0], :, :]
coronal_slice = img_data[:, midpoints[1], :]
axial_slice = img_data[:, :, midpoints[2]]
slices = [sagittal_slice.T, coronal_slice.T, axial_slice.T]
titles = ['Sagittal View', 'Coronal View', 'Axial View']
for i, ax in enumerate(axes.flat):
im = ax.imshow(slices[i], cmap='gray')
ax.set_title(titles[i])
cbar = fig.colorbar(im, ax=axes.ravel().tolist(), orientation='horizontal')
plt.tight_layout()
plt.show()
if __name__ == '__main__':
file_name = r'E:\VerSe2019\osfstorage-archive\01_training\verse008.nii.gz'
if not os.path.exists(file_name):
raise FileNotFoundError(f"The specified path does not exist: {file_name}")
try:
load_and_show_nifti(file_name)[^2]
except Exception as e:
print(e)
```
上述脚本不仅展示了如何利用 `OrthoSlicer3D()` 方法交互式查看整个体积图像,还提供了绘制三个主要方向上的中间层面作为静态图形的方式[^2]。
阅读全文
相关推荐












