为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

湖上湖 2021-11-09 15:44:33
我正在尝试使用 astropy 2.0.11 和 python 2.7.15 通过对它应用对数拉伸并更改对比度来编辑适合图像,但我无法弄清楚。我一直在尝试按照 astropy 网站上的教程打开和操作 fits 文件,但我想知道这些教程是否仅适用于最新版本的 astropy 和 python 3?抱歉我的代码的组织。这是原型代码,我只是想测试一些东西并让它工作。import timeimport numpy as npimport matplotlibimport matplotlib.pyplot as pltfrom matplotlib.colors import LogNormimport astropy.visualizationfrom astropy.io import fitsfrom astropy.utils.data import download_filefrom astropy.visualization import astropy_mpl_styleplt.style.use(astropy_mpl_style)from astropy.utils.data import get_pkg_data_filenamedef 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 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

你离得那么近!我在 Python 2.7 中运行了你的代码,你需要做的就是添加

plt.show()

之前time.sleep(10)(你有什么理由包括这个?)然后你得到

//img1.sycdn.imooc.com//618a27040001ede705740438.jpg

另外,我认为您不需要包含colorbarand yticklabelsplt.imshow自动添加带有 lognorm 比例的颜色条(我在获得图像时注释掉了该部分)。


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 402 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信