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

2023-12-15

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)

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。但对于这个特定的文件,我不确定您的期望是什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中打开并显示适合图像 的相关文章

随机推荐

  • JOIN 比 WHERE 更快吗?

    假设我有两个链接的表 一个表有另一个表的外键 CREATE TABLE Document Id INT PRIMARY KEY Name VARCHAR 255 CREATE TABLE DocumentStats Id INT PRIMA
  • 可变高度的浮动元素将兄弟姐妹向下推

    我有 6 个元素 应该会产生两行 每行 3 个元素 所以我将它们浮动 但元素的内容变化很大 当一个较高的元素阻止后续同级元素一直向左浮动时 布局就会中断 这是 CSS 示例 figure width 30 float left margin
  • n 个皇后的快速启发式算法 (n > 1000)

    我写了两个程序 通过回溯算法将棋盘上的 n 个皇后放在一起 没有任何威胁 但这对于大 n 来说非常沉重 最后你可以运行 100 个皇后 通过爬山算法将棋盘上的 n 个皇后放在一起 没有任何威胁 这个算法比过去的解决方案更好 但是 300 个
  • Jasmine 测试在 VS2012 + Resharper + PhantomJS 中运行失败

    我尝试在 vs2012 的 resharper 7 中运行 jasmine 单元测试 但失败了 resharper phantomjs is running it in autogenerated url which maybe the c
  • 在 Linux 3.x 上挂钩 sys_execve()

    我正在尝试挂钩sys execve 通过修改系统调用表来实现Linux 3 x内核上的功能 问题是sys execve 仅当执行失败时才返回错误代码 使用我正在使用的包装函数 见下文 当sys execve 在有效的可执行文件上调用 它执行
  • 将 json 数据转换为 HTML 表格

    我在 php 中有一个数据数组 我需要在 HTML 表中显示这些数据 以下是示例数据集的样子 Array Array comparisonFeatureId gt 1182 comparisonFeatureType gt Category
  • webBrowser.Navigate 同步

    我想同步调用 webBrowser Navigate string urlString 其中 webBrowser 是 Windows 窗体控件 我这样做 private delegate void NavigateDelegate str
  • psinfo_t Solaris 在其字段中不包含完整的进程名称

    将进程信息从 psinfo 数据文件 proc d psinfo 从 Solaris 中的 procfs h 读取到 struct psinfo t 时 未在 psinfo t 结构的字段 pr fname 中获取完整进程名称 完整的 ps
  • 如何正确终止 dll 内的挂起线程?

    大家好你们好 我有一个包含错误的第三方库 当我调用一个函数时 它可能会挂起 库函数在 dll 内部调用 我决定将调用移至线程中并等待一段时间 如果线程完成则确定 如果不是 我应该强制终止它 这里的简化示例 unsigned Counter
  • 使用 Unity 进行通用依赖注入

    我们将现有的日志记录库包装在 C 应用程序中我们自己的日志记录服务中 以便使用针对某些日志记录情况的预定义方法来包围它 public class LoggingBlockLoggingService ILoggingService priv
  • 如何使用 PHP 获取从 cPanel 到我的网站的磁盘空间使用情况和每月带宽传输

    我想知道如何以与登录 cPanel 帐户时显示的方式相同的方式在我的网站上显示 获取 磁盘空间使用情况和每月带宽传输 cPanel 是否有为此提供的 api 或者这是这样做的通用方法 我正在使用 PHP cPanel WHM 有一个 API
  • SonarQube“权限不足”

    自更新到 5 x 以来 由于 权限不足 问题 我们的许多构建作业目前都失败了 该问题应在 SonarQube 5 1 中解决 如中所述here但要么它实际上没有修复 要么存在另一个与我们当前运行 SonarQube 5 1 1 相同的错误的
  • 我的适配器上的notifyDataSetChanged() 不更新列表视图,为什么?

    我有一个扩展listactivity的活动 在这个类中扩展我有一个扩展baseadapter的类 现在在我的列表活动中我有这个 onCreate Called when the activity is first created Overr
  • 在 MSVS 中找不到 C++/CLI DLL 命名空间

    总体而言 我想要完成的是用 C 和 C 编写代码 以实现良好的性能 生产力平衡 这不是出于代码重用的原因 我只是希望能够在适合我的时候用本机 C 编写新代码 而不必承受其所有的恐怖 我有一个包含 4 个项目的解决方案 GUI C WPF 界
  • php:加载 oracle 驱动程序出现错误“无法加载动态库 - 找不到指定的过程。”

    我似乎在使用 PHP 时遇到了一个奇怪的问题 我已将一堆软件从一台服务器迁移到另一台服务器 在服务器上 一些脚本会与 Oracle 建立连接 因此为了能够建立连接 需要安装 Oracle 客户端并放置一个 tnsnames 文件 来自 sq
  • 如何在 jquery ui 自动完成中使用 json 传递隐藏 id?

    也许它是重复的 但我找不到解决方案 所以我发布了这个问题 我使用 jquery ui 来自动完成搜索框 它工作正常 但问题是我想使用 id example 进行搜索 当用户输入 paris 时 我尝试在 mysql 中发送 city id
  • 如何获取 Android 设备中的处理器速度和 RAM

    谁能帮助我如何通过代码获取 Android 设备的处理器名称 速度和 RAM 您可以像我们通常在 Linux 中获取的那样获取处理器 RAM 和其他硬件相关信息 我们可以在普通的 Linux 系统中从终端发出这些命令 你don t需要有一个
  • 如何将自定义长注释 geom_text 放入甜甜圈图的绘图区域内?

    我有以下真实用例的精简版本 其中我创建了一个甜甜圈图 并希望这些长标签适合整个图内部但甜甜圈外部 library ggplot2 df lt data frame group c Cars Trucks Motorbikes n c 25
  • 在并发创建线程之前读取修改的变量是否安全?

    pseudocode for illustration int g 0 void fn if g 1 std cout lt lt hello lt lt std endl else std cout lt lt world lt lt s
  • 在 python 中打开并显示适合图像

    import matplotlib pyplot as plt from astropy io import fits def openfit b hdu list fits open b hdu list info image data