Как преобразовать фигуру Matplotlib в объект изображения PIL (без сохранения изображения)Python

Программы на Python
Ответить
Anonymous
 Как преобразовать фигуру Matplotlib в объект изображения PIL (без сохранения изображения)

Сообщение Anonymous »

Как указано в заголовке, я пытаюсь преобразовать инжир в PIL.Image. В настоящее время я могу сделать это, сначала сохранив рисунок на диск, а затем открыв этот файл с помощью Image.open(), но этот процесс занимает больше времени, чем ожидалось, и я надеюсь, что, пропустив шаг локального сохранения, он будет немного быстрее.

Вот что у меня есть на данный момент:

Код: Выделить всё

# build fig
figsize, dpi = self._calc_fig_size_res(img_height)
fig = plt.Figure(figsize=figsize)
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
ax.imshow(torch.from_numpy(S).flip(0), cmap = cmap)
fig.subplots_adjust(left = 0, right = 1, bottom = 0, top = 1)
ax.axis('tight'); ax.axis('off')

# export
fig.savefig(export_path, dpi = dpi)

# open image as PIL object
img = Image.open(export_path)
Я пробовал сделать это после сборки инжира (это было бы прямо перед этапом экспорта):

Код: Выделить всё

pil_img = Image.frombytes('RGB', canvas.get_width_height(), canvas.tostring_rgb())
Но изображение не отображается целиком. Похоже, это обрезка верхнего левого угла, но это может быть просто странное представление данных — я работаю со спектрограммами, поэтому изображения довольно абстрактные.

Подробнее здесь: https://stackoverflow.com/questions/573 ... ving-image
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»