请将我的数据集里面的3D图像变成2D、三通道、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 22:14:06 浏览: 158
好的,这里提供一个Python实现的代码,需要安装的库有nibabel和numpy:
```python
import os
import numpy as np
import nibabel as nib
from PIL import Image
def window_transform(ct_array, windowWidth, windowCenter, normal=False):
minWindow = float(windowCenter) - 0.5 * float(windowWidth)
newimg = (ct_array - minWindow) / float(windowWidth)
if not normal:
newimg = np.clip(newimg, 0, 1)
return newimg
def save_image(ct_array, path):
ct_array *= 255.0
ct_array = ct_array.astype(np.uint8)
img = Image.fromarray(ct_array, mode="RGB")
img.save(path)
# 创建文件夹
os.makedirs("C:/Users/Administrator/Desktop/2D-LiTS2017/CT", exist_ok=True)
os.makedirs("C:/Users/Administrator/Desktop/2D-LiTS2017/GT", exist_ok=True)
# 加载数据
ct_folder = "C:/Users/Administrator/Desktop/LiTS2017/Training Batch 1/"
gt_folder = "C:/Users/Administrator/Desktop/LiTS2017/Training Batch 2/"
for file in os.listdir(ct_folder):
if file.endswith(".nii"):
print("Processing: ", file)
ct_path = os.path.join(ct_folder, file)
gt_path = os.path.join(gt_folder, file.replace("volume", "segmentation"))
ct_img = nib.load(ct_path)
ct_array = ct_img.get_fdata()
gt_img = nib.load(gt_path)
gt_array = gt_img.get_fdata()
# 调整窗宽、窗位
ct_array = window_transform(ct_array, 400, 40)
gt_array = np.clip(gt_array, 0, 2)
# 保存2D图像和标签
for i in range(ct_array.shape[2]):
ct_slice = ct_array[:, :, i]
gt_slice = gt_array[:, :, i]
ct_save_path = os.path.join("C:/Users/Administrator/Desktop/2D-LiTS2017/CT", f"{file.split('.')[0]}_{i:03d}.png")
gt_save_path = os.path.join("C:/Users/Administrator/Desktop/2D-LiTS2017/GT", f"{file.split('.')[0]}_{i:03d}.png")
save_image(ct_slice, ct_save_path)
save_image(gt_slice, gt_save_path)
```
代码执行完成后,你会在C:/Users/Administrator/Desktop/2D-LiTS2017文件夹里看到转换好的2D图像和标签。其中CT文件夹存储的是转换后的2D图像,GT文件夹存储的是转换后的2D标签。
阅读全文