python 语义分割标签从灰度gray转RGB转处理方式
import os
import numpy as np
from PIL import Image
from tqdm import tqdm
Origin_SegmentationClass_path = "E:/Moon_images/ouput"
Out_SegmentationClass_path = "E:/Moon_images/out_color"
label2color_dict = {
0: [0, 0, 0],
1: [255, 0, 0],
2: [0, 0, 255],
3: [0, 255, 0],
}
if __name__ == "__main__":
if not os.path.exists(Out_SegmentationClass_path):
os.makedirs(Out_SegmentationClass_path)
png_names = os.listdir(Origin_SegmentationClass_path)
print("正在遍历全部标签。")
for png_name in tqdm(png_names):
png = Image.open(os.path.join(Origin_SegmentationClass_path, png_name))
w, h = png.size
png = np.array(png, np.uint8)
out_png = np.zeros([h, w, 3])
for i in range(png.shape[0]):
for j in range(png.shape[1]):
color = label2color_dict[png[i, j]]
out_png[i, j, 0] = color[0]
out_png[i, j, 1] = color[1]
out_png[i, j, 2] = color[2]
out_png = Image.fromarray(np.array(out_png, np.uint8))
out_png.save(os.path.join(Out_SegmentationClass_path, png_name))