Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Как получить пиксели pyplot вместо отображения


Автор: wowka19 23.4.2015, 08:30
Код

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

m = Basemap(epsg=3857, resolution='l',
            llcrnrlon=98, llcrnrlat=25,
            urcrnrlon=116, urcrnrlat=39)
im = m.contourf(lons, lats, data, latlon=True)
plt.show()


В последней строке происходит отображение. Но мне нужны сами пиксели, вернее доступ к ним как к массиву. Что-то вроде:
Код

raster = plt.GetRaster()
print raster[row][col] # Значение пикселя col в строке row

Как получить эти пиксели?

Автор: tzirechnoy 23.4.2015, 17:21
Теоретически -- через savefig() в StrinIO-объект, и затем на него, например, imread() (всё это -- вместо show()).

Практически -- приведённый кусок кода у меня, по очевидным причинам не работает, потому что-то тэстировать мне, разумеется, лень.

Автор: wowka19 24.4.2015, 01:10
Спасибо. А как в таком случае сохранить исходную глубину пикселя? Т.е. pyplot.savefig() сохраняет в png/tif/др. 8 бит на пиксель, а мне нужно 16бит, а лучше вообще число с плавающей точкой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)