Как вы можете растянуть изображение FITS и изменить его контраст? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь использовать astropy 2.0.11 с python 2.7.15 для редактирования подходящего изображения, применяя к нему растягивание бревна и изменяя контраст, и я не смог понять это.

Я пытался следовать учебным пособиям на веб-сайте astropy для открытия и управления файлами подгонки, но мне интересно, будут ли учебные пособия работать только для последней версии astropy и Python 3?

Извините за организацию моего кода.Это прототип кода, и я просто пытаюсь протестировать несколько вещей и заставить это работать.

import time
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
import astropy.visualization
from astropy.io import fits
from astropy.utils.data import download_file
from astropy.visualization import astropy_mpl_style
plt.style.use(astropy_mpl_style)
from astropy.utils.data import get_pkg_data_filename


def main():

    #My own fits file
    #fitsImage = get_pkg_data_filename("C:\\20180807T000456.fits")

    fitsImage = download_file('http://data.astropy.org/tutorials/FITS-images/HorseHead.fits', cache=True )

    hdu_list = fits.open(fitsImage)
    hdu_list.info()

    #norm = ImageNormalize(stretch=LogStretch())

    image_data = fits.getdata(fitsImage)
    print(type(image_data))
    print(image_data.shape)


    hdu_list.close()

    plt.figure()
    plt.imshow(image_data, cmap='gray', norm=LogNorm())
    plt.colorbar()

    # I chose the tick marks based on the histogram above
    cbar = plt.colorbar(ticks=[5.e3,1.e4,2.e4])
    cbar.ax.set_yticklabels(['5,000','10,000','20,000'])

    time.sleep(10)

Я также не могу получить изображение для отображения с plt.imshow()

Любое понимание будет полезно

1 Ответ

0 голосов
/ 15 февраля 2019

Ты так близко!Я запустил ваш код в Python 2.7, и все, что вам нужно сделать, это добавить

plt.show()

до time.sleep(10) (по какой причине вы включаете это?), И вы получите enter image description here

Кроме того, я не думаю, что вам нужно включать colorbar и yticklabels, plt.imshow автоматически добавляет цветовую шкалу со шкалой lognorm (я прокомментировал этот раздел, когда получил изображение).

...