您如何记录拉伸 FITS 图像并更改其对比度?

我正在尝试使用 astropy 2.0.11 和 python 2.7.15 通过对它应用对数拉伸并更改对比度来编辑适合图像,但我无法弄清楚。


我一直在尝试按照 astropy 网站上的教程打开和操作 fits 文件,但我想知道这些教程是否仅适用于最新版本的 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()


任何见解都会有所帮助


湖上湖
浏览 403回答 1
1回答

绝地无双

你离得那么近!我在 Python 2.7 中运行了你的代码,你需要做的就是添加plt.show()之前time.sleep(10)(你有什么理由包括这个?)然后你得到另外,我认为您不需要包含colorbarand yticklabels,plt.imshow自动添加带有 lognorm 比例的颜色条(我在获得图像时注释掉了该部分)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python