Отображение изображения с помощью matplotlib, разрешение которого превышает разрешение экрана

Я пытаюсь отобразить спутниковое изображение часового-1 размером 26000(ширина) x 17000(высота) пикселей и использующее Python 3.5. Я могу загрузить это изображение в виде массива в виде массива и пытаюсь отобразить его в matplotlib, но не могу сделать это, поскольку оно дает ошибку памяти. Разрешение экрана составляет 1600(ширина) X 1200(высота) пикселей. Я использую Windows 7 с 8 ГБ ОЗУ. Я согласен, что он может не отображаться из-за ограничений памяти, но есть ли способ показать такое огромное изображение? Также я видел много программ для обработки спутниковых изображений, таких как SNAP(Sentinel Toolbox), которые могут отображать такие огромные изображения в указанном выше разрешении экрана, но не могут найти, как они это делают. Пожалуйста, помогите.

1 ответ

Попытался создать изображение с шириной и высотой, как вы указали. У меня разрешение экрана 1920 на 1080, FHD

import matplotlib
matplotlib.rcParams['figure.dpi'] = 120
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
from numpy.random import randn
fig, ax = plt.subplots()
data = np.clip(randn(26000, 17000), -1, 1)
cax = ax.imshow(data, interpolation='nearest', cmap=cm.coolwarm)

cbar = fig.colorbar(cax, ticks=[-1, 0, 1])
cbar.ax.set_yticklabels(['< -1', '0', '> 1'])  

plt.show()

Сюжет генерируется, но около 7 ГБ памяти съедается питоном!

Другие вопросы по тегам