请将我的数据集里面的3D图像变成2D、RGB三通道、的png格式的图像(调整窗宽窗位,以突出所需区域的细节)。数据集里面的3D标签变成(要求背景灰度值0、肝脏灰度值1、肝脏肿瘤灰度值2的)2D的png格式标签。 LiTS2017数据集里面包含Training Batch 1和Training Batch 2两个文件夹。Training Batch 1文件夹里面有图像,图像的拓展名为.nii。Training Batch 2文件夹里面有标签,标签拓展名为.nii。 LiTS2017数据集的路径为C:\Users\Administrator\Desktop\LiTS2017。 保存路径为C:\Users\Administrator\Desktop\2D-LiTS2017,请帮我创建好对应文件夹,并且将转换好的数据保存到对应的文件夹。
时间: 2024-02-03 14:15:05 浏览: 18
好的,我可以帮您完成这个任务。您需要安装 SimpleITK 和 numpy 库来处理图像文件。以下是实现该任务的 Python 代码:
```python
import os
import numpy as np
import SimpleITK as sitk
# 设置路径和文件名
data_path = r'C:\Users\Administrator\Desktop\LiTS2017'
save_path = r'C:\Users\Administrator\Desktop\2D-LiTS2017'
if not os.path.exists(save_path):
os.makedirs(save_path)
# 循环遍历所有图像文件
for file_name in os.listdir(os.path.join(data_path, 'Training Batch 1')):
if file_name.endswith('.nii'):
# 读取nii文件
img = sitk.ReadImage(os.path.join(data_path, 'Training Batch 1', file_name))
img_array = sitk.GetArrayFromImage(img)
# 循环遍历所有切片
for i in range(img_array.shape[0]):
# 转换成2D图像
img_slice = img_array[i, :, :]
# 调整窗宽窗位
img_slice = np.clip(img_slice, -200, 250)
img_slice = (img_slice + 200) * (255 / 450)
img_slice = img_slice.astype(np.uint8)
# 将图像保存为png格式
save_file_name = file_name[:-4] + f'_slice{i}.png'
save_path_img = os.path.join(save_path, 'image', save_file_name)
sitk.WriteImage(sitk.GetImageFromArray(img_slice), save_path_img)
for file_name in os.listdir(os.path.join(data_path, 'Training Batch 2')):
if file_name.endswith('.nii'):
# 读取nii文件
img = sitk.ReadImage(os.path.join(data_path, 'Training Batch 2', file_name))
img_array = sitk.GetArrayFromImage(img)
# 循环遍历所有切片
for i in range(img_array.shape[0]):
# 转换成2D图像
img_slice = img_array[i, :, :]
# 将标签划分为3类(背景、肝脏、肝脏肿瘤)
img_slice[img_slice == 1] = 255
img_slice[img_slice == 2] = 128
# 将图像保存为png格式
save_file_name = file_name[:-4] + f'_slice{i}_label.png'
save_path_img = os.path.join(save_path, 'label', save_file_name)
sitk.WriteImage(sitk.GetImageFromArray(img_slice), save_path_img)
```
这个代码会在指定的路径下创建 `image` 和 `label` 两个文件夹,分别存储转换好的2D图像和标签。请注意,该代码假定您的数据集中只有 `Training Batch 1` 和 `Training Batch 2` 两个文件夹,并且所有的图像文件都是以 `.nii` 扩展名结束的。如果您的数据集结构不同,需要根据实际情况修改代码。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)