麻烦给我完整的将nii.gz格式图像归一化的代码
时间: 2024-02-24 22:58:36 浏览: 15
好的,以下是一个将 nii.gz 格式图像归一化的 Python 代码示例:
```python
import nibabel as nib
import numpy as np
import os
def normalize_image(img_path, min_val=0.0, max_val=1.0):
# 加载图像
img = nib.load(img_path)
data = img.get_fdata()
# 将像素值缩放到 [min_val, max_val] 范围内
data_norm = (data - data.min()) / (data.max() - data.min()) * (max_val - min_val) + min_val
# 创建一个新的 NIfTI 对象,将像素值归一化后的数据写入其中
img_norm = nib.Nifti1Image(data_norm, img.affine, img.header)
# 保存归一化后的图像
img_dir, img_name = os.path.split(img_path)
img_name, img_ext = os.path.splitext(img_name)
img_norm_path = os.path.join(img_dir, img_name + '_norm' + img_ext)
nib.save(img_norm, img_norm_path)
return img_norm_path
```
其中,`normalize_image` 函数的参数说明如下:
- `img_path`:输入图像路径;
- `min_val`:输出像素值的最小值;
- `max_val`:输出像素值的最大值。
函数返回归一化后的图像路径。你可以将 `normalize_image` 函数应用到多个图像上进行批量处理。