gpt4 book ai didi

python - 在 python 中打开并显示适合图像

转载 作者:行者123 更新时间:2023-12-01 04:01:51 25 4
gpt4 key购买 nike

import matplotlib.pyplot as plt
from astropy.io import fits
def openfit(b):
hdu_list = fits.open(b)
hdu_list.info()
image_data = hdu_list[0].data
plt.imshow(image_data, cmap='gray')
plt.colorbar()
plt.show()

openfit(r"C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\HorseHead.fits")

我使用这段代码打开并显示我从 ( http://www.astropy.org/astropy-tutorials/FITS-images.html ) 获取的 HorseHead 适合图像

openfit(r"C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\NGC2392_CXO.fits")

当我尝试使用相同的代码打开NGC2392_CXO( http://people.sabanciuniv.edu/ersing/proj102/ )

我在线收到错误:“plt.imshow(image_data, cmap='gray')”

plt.imshow(image_data, cmap='gray')
File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 3022, in imshow
**kwargs)
File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1811, in inner
return func(ax, *args, **kwargs)
File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 4947, in imshow
im.set_data(X)
File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\image.py", line 449, in set_data
raise TypeError("Image data can not convert to float")
TypeError: Image data can not convert to float

我认为问题出在图像文件的尺寸上。“hdu_list.info()”行给出了适合文件的图像的属性。对于 HorseHead,它给出了

Filename:                
C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\HorseHead.fits
No. Name Type Cards Dimensions Format
0 PRIMARY PrimaryHDU 161 (891, 893) int16
1 er.mask TableHDU 25 1600R x 4C [F6.2, F6.2, F6.2, F6.2]

对于 NGC2392_CXO,同一行给出

Filename:   
C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\NGC2392_CXO.fits
No. Name Type Cards Dimensions Format
0 PRIMARY PrimaryHDU 32 ()
1 EVENTS BinTableHDU 884 238647R x 19C [1D, 1I, 1I, 1J, 1I,
1I, 1I, 1I, 1E, 1E, 1E, 1E, 1J, 1J, 1E, 1J, 1I, 1I, 32X]
2 GTI BinTableHDU 28 1R x 2C [1D, 1D]

在 HorseHead 列表的第 0 个索引中,它具有整数维度,而 NGC2392_CXO 没有维度。我似乎不知道如何查看 NGC2392_CXO

最佳答案

从技术上讲,就 FITS 格式而言,您尝试打开的文件不包含图像。主 HDU 没有数据,其他两个 HDU 是表,而不是图像。某些约定可以将图像存储在表中,但列结构在本例中看起来并不像这样,尽管查看列名称会提供一些见解。

但一般来说,如果您想使用 Python 显示 FITS 图像,如果您至少从 aplpy 开始,通常会获得最直接、最轻松的结果。 。但对于这个特定的文件,我不确定您的期望是什么。

关于python - 在 python 中打开并显示适合图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com