是否有将原始数组作为图像查看的程序?

Is there a program to view a raw array as an image?

我有一个高度图,它只是一个 16 位宽的大端数组。我没有研究过从原始数据编码 jpg 或 png,但在我这样做之前我想知道是否有任何程序可以下载以将其作为图像查看,因为我想知道它是什么样子.

当我搜索查看原始图像数据时,所有结果 return 有关用于相机图像格式的 RAW 图像格式的信息,这在制造商之间也有所不同,我不认为那是我的'我在找。它是原始数组中的原始数据,而不是 .RAW 图像格式。

谢谢。

是的,使用 ImageMagick,它安装在大多数 Linux 发行版上,适用于 macOS 和 Windows。

因此,如果您的图像是 600x400 并且在名为 image.dat 的文件中只有 16 位灰度值,您可以在终端执行此操作并获得一个名为 output.jpg 的文件,您可以查看该文件:

convert -size 600x400 -depth 16 -endian MSB GRAY:image.dat -auto-level output.jpg

如果有一个 512 字节 header,你会使用:

convert -size 600x400+512 ...

如果数据是彩色而不是灰度,使用:

convert -size 600x400 -depth 16 -endian MSB RGB:image.dat ...

如果您想要 PNG 而不是 JPG,请使用:

convert ... result.png

作为替代方案,您可以考虑编写 PGM(便携式灰度地图)或 来自您的程序的 PPM(便携式像素图)格式文件非常简单,请参见NetPBM Wiki description并且其中包含您的图像大小 - 所以它将是self-contained .人们通常会使用 P5(对于灰度)或 P6(对于颜色)二进制数据,而不是 ASCII 数据。然后您可以使用 ImageMagick 将其简单地转换为 JPEG(或 PNG),而不必担心编写 JPEG 或 PNG 或与库链接:

convert result.pgm result.png     # convert greyscale results to PNG

convert result.ppm result.jpg     # convert colour results to JPG, or PNG, or TIFF, or GIF...