Позвольте мне вместо этого использовать кусок кода и более краткое описание.
import numpy as np
from PIL import Image as im
real_img = im.open('test.jpg').convert('L') #comment the .convert('L') and it no longer works
old_img = np.array(real_img)
new_img = np.zeros(old_img.shape)
for i_row in xrange(old_img.shape[0]):
for i_col in xrange(old_img.shape[1]):
new_img[i_row][i_col] = old_img[i_row][i_col]
new_real_img = im.fromarray(new_img).convert('L') #comment the .convert('L') and it no longer works
new_real_img.save('test2.jpg')
Этот код просто берет изображение и пытается скопировать его (в моем коде я делаю больше, чем это, но этого достаточно для примера, поскольку это иллюстрирует мою проблему). Если вы запустите его как есть (с изображением «test.jpg» в той же папке), это сработает. Однако, если вы удалите convert('L')
в двух строках, которые он появляется, он больше не работает. Я также не могу преобразовать его в 'RGB'
или другой полезный формат.
Итак, проблема в том, что я не могу использовать ndarrays с PIL, пока я использую цветные изображения. Есть ли способ это исправить?