Действительно, на этот вопрос отвечали много раз. Однако, поскольку я не могу добавлять комментарии к ответу из-за «слишком низкой» репутации, я хотел бы обсудить решение, представленное в наиболее полном ответе .
Не было бы решение:
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt #Used in the comparison below
im = Image.open('file.png').convert('RGB') #Opens a picture in grayscale
pic = np.array(im)
im.close()
работает нормально? Мне интересно, происходят ли неприемлемые изменения качества. Я заметил некоторые различия (то есть черные строки вверху в plt.imshow ()) при отображении изображения:
im.show() #Before closing
plt.imshow(pic)
но я не знаю, являются ли они только неизбежными последствиями преобразования в np.array.
PS - Если это важно, я бы упомянул, что я готовлю изображение к квантованию цвета (KMeans) и размыванию Флойда.
PPS - Если бы вы посоветовали мне не публиковать повторяющийся вопрос, а обсудить ответы напрямую - это было бы очень признательно.