我的LiTS2017数据集是二维的数据集。数据集里面有命名为train_liver_tumor2的文件夹和命名为liver_tumor2_label的文件夹。train_liver_tumor2文件夹里面有图像,图像的拓展名为.png。liver_tumor2_label文件夹里面有标签,标签拓展名为.png。 请将我的train_liver_tumor2文件夹里面的图像变成RGB三通道的图片,再将RGB三通道图片中的肝脏部分染成红色,肿瘤部分染成蓝色。 我的二维LiTS2017数据集的路径为E:\2D-LiTS2017liver_tumor。保存路径为E:\2D-LiTS2017color,帮我创建保存图像与标签的文件夹,并且将转换好的数据保存到对应的文件夹。
时间: 2024-02-22 07:57:46 浏览: 65
好的,我会为您提供Python代码来完成这个任务。请注意,在运行代码前,请确保安装了必要的Python库(numpy, PIL, os)。
```python
import numpy as np
from PIL import Image
import os
# 设置路径
data_path = "E:/2D-LiTS2017liver_tumor"
save_path = "E:/2D-LiTS2017color"
train_path = os.path.join(data_path, "train_liver_tumor2")
label_path = os.path.join(data_path, "liver_tumor2_label")
# 创建保存图像与标签的文件夹
os.makedirs(os.path.join(save_path, "train"), exist_ok=True)
os.makedirs(os.path.join(save_path, "label"), exist_ok=True)
# 对每个图像进行处理
for filename in os.listdir(train_path):
# 读取图像
img_path = os.path.join(train_path, filename)
img = Image.open(img_path)
# 将灰度图转换为RGB三通道
img_rgb = Image.new("RGB", img.size)
img_rgb.paste(img)
# 读取对应的标签
label_path = os.path.join(label_path, filename)
label = Image.open(label_path)
# 将肝脏部分染成红色,肿瘤部分染成蓝色
label_arr = np.array(label)
label_color = np.zeros((label_arr.shape[0], label_arr.shape[1], 3), dtype=np.uint8)
label_color[label_arr == 1] = [0, 0, 255] # 红色,肝脏
label_color[label_arr == 2] = [255, 0, 0] # 蓝色,肿瘤
label_color = Image.fromarray(label_color)
# 保存图像与标签
img_rgb.save(os.path.join(save_path, "train", filename))
label_color.save(os.path.join(save_path, "label", filename))
# 重置label_path变量,以便下一个循环使用
label_path = os.path.join(data_path, "liver_tumor2_label")
```
希望这个代码对您有所帮助!
阅读全文