Python 如何将标签矩阵转换为用于图像分割的颜色矩阵?

Python 如何将标签矩阵转换为用于图像分割的颜色矩阵?,python,image-processing,computer-vision,pytorch,image-segmentation,Python,Image Processing,Computer Vision,Pytorch,Image Segmentation,例如,我有一个256*256的标签矩阵。课程为0-11,共12门。我想把标签矩阵转换成颜色矩阵。我试着用这样的代码来做 `for i in range(256): for j in range(256): if x[i][j] == 11: dummy[i][j] = [255,255,255] if x[i][j] == 1: dummy[i][j] = [144,0,0] if x[i][

例如,我有一个256*256的标签矩阵。课程为0-11,共12门。我想把标签矩阵转换成颜色矩阵。我试着用这样的代码来做

`for i in range(256):
    for j in range(256):
        if x[i][j] == 11:
            dummy[i][j] = [255,255,255]
        if x[i][j] == 1:
            dummy[i][j] = [144,0,0]
        if x[i][j] == 2:
            dummy[i][j] = [0,255,0]    
        if x[i][j] == 3:
            dummy[i][j] = [0,0,255]
        if x[i][j] == 4:
            dummy[i][j] = [144,255,0]
        if x[i][j] == 5:
            dummy[i][j] = [144,0,255]            
        if x[i][j] == 6:
            dummy[i][j] = [0,255,255]
        if x[i][j] == 7:
            dummy[i][j] = [122,0,0]
        if x[i][j] == 8:
            dummy[i][j] = [0,122,0]
        if x[i][j] == 9:
            dummy[i][j] = [0,0,122]
        if x[i][j] == 10:
            dummy[i][j] = [122,0,122]
        if x[i][j] == 11:
            dummy[i][j] = [122,122,0]
            `

这是非常低效的。PS:x的形状为[256 256],假人的形状为[256 3]。有更好的方法吗?

您正在查看索引RGB图像-一种RGB图像,其中您有一个固定的颜色“托盘”,每个像素将索引到托盘的一种颜色。有关更多信息,请参阅

from PIL import Image

img = Image.fromarray(x, mode="P")
img.putpalette([
    255, 255, 255,   # index 0
    144, 0, 0, # index 1 
    0, 255, 0, # index 2 
    0, 0, 255, # index 3 
    # ... and so on, you can take it from here.
])
img.show()

“255,255,255”是否应该在类似于[[255,255,255],[255,255,0],…]的列表中?@FarshidRayhan请查看答案中的链接