Уведомления

Группа в Telegram: @pythonsu

#1 Июль 14, 2016 08:44:04

SwerLo
От: Санкт-Петербург
Зарегистрирован: 2016-07-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с картинкой

Хотел написать для начала простую программку для картинок в формате .fit.
Буквально сразу столкнулся с проблемой удобного отображения картинки. Везде в примерах используется matplotlib.pyplot.
Картинка открывается, показывается, но хотелось бы “нормализовывать” по собственному усмотрению. Для это добавил два “слайдера”, всё вроде понятно. Но не понятно что нужно дописать в функции def(), чтобы изменилась эта “нормализация” и картинка перерисовалась.
Есть в примерах что-то похожее, но везде немного не то, что нужно и в итоге не работает.
Или здесь придётся нормализовать в ручную данные картинки?

import matplotlib.pyplot as plt
from astropy.visualization import astropy_mpl_style
from matplotlib.widgets import Slider
from astropy.io import fits
plt.style.use(astropy_mpl_style)
max1=10000
min1=0
image_file = "1.fit"
fits.info(image_file)
image_data = fits.getdata(image_file, ext=0)
im = plt.imshow(image_data, cmap='gray', norm=plt.Normalize(min1,max1), animated=True)
axcolor = 'lightgoldenrodyellow'
axmax = plt.axes([0.25, 0, 0.65, 0.03], axisbg=axcolor)
axmin = plt.axes([0.25, 0.05, 0.65, 0.03], axisbg=axcolor)
max11 = Slider(axmax, 'max', 1, 100000, valinit=10000)
min11 = Slider(axmin, 'min', 1, 100000, valinit=10)
def update(val):        
        max1=max11.val
        min1=min11.val
        ?
                      
max11.on_changed(update)
min11.on_changed(update)
plt.show()

Офлайн

#2 Июль 15, 2016 08:14:46

SwerLo
От: Санкт-Петербург
Зарегистрирован: 2016-07-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с картинкой

Ура! Утро вечера мудренее. Видать тогда вечером совсем уставший был.
Нужно добавить строку:

im.set_norm(plt.Normalize(min1,max1))

Но как-то всё медленнно работает. Я думал питон по-шустрее будет. Или это не в нём дело…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version