Как преобразовать матрицу Label в цветовую матрицу для сегментации изображения? - PullRequest
0 голосов
/ 28 февраля 2019

Например, у меня матрица меток 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 256 3].Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 28 февраля 2019

Вы просматриваете индексированные изображения 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...