Я пытаюсь сгладить изображение, которое было преобразовано в трехмерный массив, в три отдельных одномерных массива, представляющих каналы RGB.
Массив изображения имеет форму (HEIGHT, WIDTH, RGB), и я тщетно пытался использовать как разрезание индекса, так и разархивирование, чтобы просто вернуть значения 3-го измерения.
В идеале три отдельных массива представляют каждый канал RGB,
Пример:
print(image)
[
[ [56, 6, 3], [23, 32, 53], [27, 33, 56] ],
[ [57, 2, 3], [23, 246, 49], [29, 253, 58] ]
]
red_channel, green_channel, blue_channel = get_third(image)
print(red_channel)
[56, 23, 27, 57, 23, 29]
Я думал об использовании вложенного цикла for для итерации первых двух измерений, а затем добавления каждого массива RGB в список или чего-то еще, но я понимаю, что это было бы неэффективно и немного раздражало. .
Заранее спасибо!
EDIT
Уточнение. Под разархивированием я подразумеваю использование оператора звезды (*) внутри функции zip, например:
zip(*image)
Также, чтобы уточнить, я не собираюсь сохранять ширину и высоту, я просто хочу по существу только сгладить и вернуть трехмерное измерение массива.