Определение цвета полигонов, нарисованных mahotas.polygons - PullRequest
2 голосов
/ 13 июля 2020

Я использую этот код

with open('frame 0001.json') as json_file:
    json_dict = json.load(json_file)
    shape = (1920, 1052)
    canvas = np.zeros(shape)
    for obj in json_dict["objects"]:
        pts = [((round(p["x"] - 1)), (round(p["y"]))) for p in obj["polygon"]]
        mp.fill_polygon(pts, canvas, obj["classIndex"])
    pic = canvas.transpose()
plt.imshow(pic)
plt.show()

, чтобы преобразовать файл JSON в график. Однако я хотел бы изменить цвета, которые сначала установлены obj["classIndex"] , на другой цвет. При печати графика я обнаружил, что график выглядит так:

[[5. 5. 5. 5.]
 [5. 5. 5. 5.]
 [5. 5. 5. 5.]
 ...
 [4. 4. 4. 4.]
 [4. 4. 4. 4.]
 [0. 0. 0. 0.]]

Я такого раньше не видел. как мне go изменить эти значения в RGB? Это я установил раньше. Я знаю, что могу использовать

colors = [
    (0, 0, 0, 255),
    (100, 100, 100, 255),
    (204, 0, 0, 255),
    (0, 174, 0, 255),
    (102, 51, 153, 255),
    (0, 0, 155, 255),
    (255, 102, 0, 255),

for idx, c in enumerate(colors):
    pic[np.all(pic == idx)] = c

, чтобы изменить что-то вроде этого

[[0 0 0 0]
 [0 0 0 0]
 [0 0 0 0]]

на это

[[0 0 0 255]
 [0 0 0 255]
 [0 0 0 255]
 [0 0 0 255]]

, однако я никогда раньше не работал с чем-то подобным

[[5. 5. 5. 5.]
 [5. 5. 5. 5.]
 [5. 5. 5. 5.]]

...