2016-08-04 2 views
2

Я загрузил изображение 100x100 rgb в массив numpy. Затем я преобразовал его в массив 30000x1 numpy, чтобы пройти через модель машинного обучения. Выходной сигнал этой модели также представляет собой массив 30000x1 numpy. Как преобразовать этот массив обратно в массив numpy из 100x100 3-кортежей, чтобы я мог распечатать сгенерированное изображение rgb?Изменить матрицу на матрицу rgb

Если начальный массив равен [r1 g1 b1],[r2 g2 b2],...,[], он разворачивается до [r1 g1 b1 r2 g2 b2 ...]. Мне нужно это обратно в форме [r1 g1 b1],[r2 g2 b2],...,[].

Что я использовал, чтобы загрузить изображение в виде массива:

im=img.resize((height,width), Image.ANTIALIAS); 
im=np.array(im); 
im=im.ravel(); 

Я попытался .reshape ((100,100,3)) и я получаю черное выходное изображение. Модель машинного обучения правильная, и это не является причиной получения черного выхода.

+0

Ваш 'reshape' кажется правильным (попробуйте его с помощью начального массива). Как вы конвертируете в RGB, может быть, проблема есть? – Alex

+0

Я не конвертирую изображение в RGB. Я загружаю изображение RGB в массив 'img' и переставляя его в 100x100 и сохраняя его в' im' – Sibi

+0

. Я имел в виду вывод. Из вашего вопроса: «Я пробовал .reshape ((100,100,3)), и я получаю черное выходное изображение.» - следовательно, мой вопрос, _how_, вы переходите к обращению RGB? Вы пытались переделать и отобразить исходный массив без частичного обучения машиной? – Alex

ответ

1

Отвечая, потому что я не могу комментировать. Попробуйте reshape((3, 100, 100))

a = np.random.random((3, 2, 2)) 
# array([[[ 0.28623689, 0.96406455], 
#   [ 0.55002183, 0.73325715]], 
# 
#  [[ 0.44293834, 0.08118479], 
#   [ 0.28732176, 0.94749812]], 
# 
#  [[ 0.40169829, 0.0265604 ], 
#   [ 0.07904701, 0.19342463]]]) 
x = np.ravel() 
# array([ 0.28623689, 0.96406455, 0.55002183, 0.73325715, 0.44293834, 
#   0.08118479, 0.28732176, 0.94749812, 0.40169829, 0.0265604 , 
#   0.07904701, 0.19342463]) 
print(x.reshape((2, 2, 3))) 
# array([[[ 0.28623689, 0.96406455, 0.55002183], 
#   [ 0.73325715, 0.44293834, 0.08118479]], 

#  [[ 0.28732176, 0.94749812, 0.40169829], 
#   [ 0.0265604 , 0.07904701, 0.19342463]]]) 
print(x.reshape((3, 2, 2))) 
# array([[[ 0.28623689, 0.96406455], 
#   [ 0.55002183, 0.73325715]], 
# 
#  [[ 0.44293834, 0.08118479], 
#   [ 0.28732176, 0.94749812]], 
# 
#  [[ 0.40169829, 0.0265604 ], 
#   [ 0.07904701, 0.19342463]]]) 
Смежные вопросы