FITS 创建压缩图像数据
FITS creating compressed image data
我正在尝试使用压缩以FITS格式写入数据。这是我尝试过的:
#include <vector>
#include "fitsio.h"
#define DIM 100
int main(int argc, char *argv[]) {
fitsfile *fptr; /* pointer to the FITS file, defined in fitsio.h */
std::vector<double> data(DIM*DIM);
for (unsigned int i=0; i<data.size();i++) data[i]=i;
int s=0, status;
fits_create_file(&fptr, "!test3.fits", &s); status+=s;
fits_set_compression_type(fptr, GZIP_2, &s); status+=s;
std::vector<long> naxes(2); naxes[0]=DIM; naxes[1]=DIM;
fits_create_img(fptr, DOUBLE_IMG, naxes.size(), &naxes[0], &s); status+=s;
fits_write_img(fptr, TDOUBLE, 1, data.size(), &data[0], &s); status+=s;
fits_close_file(fptr, &status); status+=s;
return status;
}
它有效,因为返回状态为零。但是我无法用任何东西打开文件。此外,file test3.fits
回报
test3.fits: FITS image data, 16-bit, two's complement binary integer
虽然如果我删除行fits_set_compression_type
...我得到
test3.fits: FITS image data, 64-bit, floating point, double precision
这是正确的(我可以打开图像)
我在这里做错了什么?
有些较旧的 FITS 库无法处理 FITS 切片压缩标准。基于最新的cfitsio(和CCfits)和nom.tam.fits的软件通常符合该约定。
看起来我创建了一个有效的适合文件,它只是 imageJ 没有正确读取它。下载 ds9 在它工作得很好。
相关文章:
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- OpenCV(C++)处理来自JavaScript / Web Assembly的图像数据
- VTK 图像数据,访问数组中的 1 个图像
- 处理来自IMFSourceReader和IMFSample的图像数据
- 如何返回定义良好的内存部分?例如来自图像数据的像素的颜色值
- 如何从amd gpus的显示输出中获取图像数据
- 如何将OpenCV图像数据从Python转换为C++?
- WIC - Exif 元数据查询 - 如何获取图像说明
- 这是我的程序,C++使用 OpenCv 库从数据集中读取图像序列,但它没有运行
- 以高数据速率发送图像数据超过提升::asio::udp?
- 如何将图像数据从搜索窗口中移动到本地存储器OpenCL
- 如何从 GIFLIB 保存图像结构中获取 RGB 颜色数据
- 如何将图像转换为C 中的RGB数据值
- 在C 中显示图像及其元数据
- 如何使用stb_image将像素颜色数据写入 BMP 图像文件?
- 表示图像矩阵的理想数据结构是什么?
- 如何从内存中读取原始图像 (YUV 4:2:2) 格式的图像数据
- 如何使用JNI + OpenCV + NDK获取原始的android相机传感器图像数据
- 使用Sapera拍摄图像并将数据复制到矢量
- 将图像数据尽快写入磁盘