如何从CCfits获取图像数据

时间:2018-04-08 22:44:35

标签: c++ image fits

我尝试使用C ++读写FITS图像。我试图使用CCfits,但我无法弄清楚如何获取像素缓冲区。我已经使用文档中的示例代码成功读取图像并打印出主标题,但是当我尝试读取二进制数据数组时出现错误。以下是CCfits示例中提供的代码(我已指出错误的位置)。

 template<typename S>
        void read(std::valarray<S>& image) ;

make返回的错误是:

-lcfitsio -lCCfits

事实上,根据我使用源代码下载的文档,该签名没有任何功能。所以我尝试了所有其他记录的签名,但我仍然得到了基本相同的错误(只是提到了不同的签名)。

事实上,我打开了 PHDU.h 的本地副本,发现了这一行:

df1 = iris.iloc[ : , 0:1]
df2 = iris.iloc[ : , 1:2]
.
.
.
dfn = iris.iloc[ : , n-1:n]

我包含df_group1 = df1, df2, ...., dfn df_group2 = df1, df3, ...., df(n-1) ,如果我用 read()函数注释掉该行,代码构建正常。

是否有人知道如何使用此库?

有没有人有一个有效的例子?

2 个答案:

答案 0 :(得分:1)

看来CCfits并没有像宣传的那样真正起作用。 read()函数已记录在案,甚至在头文件中声明,但没有实现。

只需使用cfitsio即可。

答案 1 :(得分:0)

我发现,为了使CCfits正常工作,您需要使用#include <CCfits>。只包括你想要所需的文件不会引入函数的实现。

我还发现你需要修改一下代码,并指定一个非零长度的valarray(至少对于一个较新的gcc版本(8.x.y))。