Задать вопрос
@nerklion

Python cv2 как перести многомерный массив в картинку?

Python cv2, необходимо сконвертировать многомерный массив в картинку, например:
Дано:
[['255', '255', 255', '190', '190', 160', '76', '45', '78'],
['255', '255', 255', '190', '190', 160', '76', '45', '78'],
['255', '255', 255', '190', '190', 160', '76', '45', '78']]
Где каждые 3 значения - цвета пикселя
В итоге должна получиться картинку 3 на 3 пикселя с определенными цветами:
Белый Серый Фиолетовый
Белый Серый Фиолетовый
Белый Серый Фиолетовый
(Не смог прикрепить картинку)
  • Вопрос задан
  • 246 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
src = [['255', '255', '255', '190', '190', '160', '76', '45', '78'],
['255', '255', '255', '190', '190', '160', '76', '45', '78'],
['255', '255', '255', '190', '190', '160', '76', '45', '78']]

int_src = [ list(map(int, row)) for row in src ]
red = [ row[0::3] for row in src ] #подразумеваю, что у тебя составляющие идут в порядке RGB
green = [ row[1::3] for row in src ]
blue = [ row[2::3] for row in src ]
image = cv2.merge((blue, green, red)) #opencv по умолчанию хранит изображения в BGR, а не RGB
Ответ написан
Комментировать
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
import cv2
import matplotlib.pyplot as plt

data = [
    ['255', '255', '255', '190', '190', '160', '76', '45', '78'],
    ['255', '255', '255', '190', '190', '160', '76', '45', '78'],
    ['255', '255', '255', '190', '190', '160', '76', '45', '78']
]

to_chunks = lambda x, n:[x[i*n:i*n+n] for i in range(len(x) // n)]
img = [to_chunks(list(map(int, row)), 3) for row in data]

f,ax = plt.subplots(1,1)
ax.imshow(img)

618fb0849826b433569879.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы