Как объединить несколько двухмерных массивов в один трехмерный массив? - PullRequest
0 голосов
/ 21 декабря 2018

Вот мой код:

img = imread("lena.jpg")
for channel in range(3):
    res = filter(img[:,:,channel], filter)
    # todo: stack to 3d here

Как видите, я применяю какой-то фильтр для каждого канала на изображении.Как мне сложить их обратно в 3D-массив?(= исходная форма изображения)

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я бы инициализировал переменную с нужной формой раньше:

img = imread("lena.jpg")
res = np.zeros_like(img)     # or simply np.copy(img)
for channel in range(3):
    res[:, :, channel] = filter(img[:,:,channel], filter)
0 голосов
/ 21 декабря 2018

Вы можете использовать np.dstack :

import numpy as np

image = np.random.randint(100, size=(100, 100, 3))

r, g, b = image[:, :, 0], image[:, :, 1], image[:, :, 2]

result = np.dstack((r, g, b))

print("image shape", image.shape)
print("result shape", result.shape)

Выход

image shape (100, 100, 3)
result shape (100, 100, 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...