我有一个OpenCV的双精度(CV_32F)矩阵。我想将其保存到磁盘上。我知道,我可以将其转换为1通道8位IplImage并保存。但是这样会失去精度。有没有一种方法可以直接以32位格式保存它,而不必先进行转换?如果结果文件能够具有图像格式,那就更好了,这样我就可以将其视为图像来查看。
这是一个古老的话题,但我想发表一下我的看法。
如果你只是想将浮点图像保存到磁盘上,并且不需要查看它们,你可能想要查看便携式浮点映射(PFM)图像格式。这是一个非常简单的格式,只是将浮点数保存到磁盘中,没有压缩,头部信息也很少。你可以非常快速地编写自己的读写代码。这就是我用于HDR研究的方式。
正如其他人指出的那样,如果要“查看”浮点图像,你需要问自己一些关于它们内容以及如何合理地将它们缩放回你可以在监视器上显示的8位范围的问题。你可以考虑使用Matlab的图像查看器(imshow函数),它提供了一些双重缩放功能。
你还可以考虑保存为EXR或HDR格式,并使用Photomatix内置的HDR图像查看器,该查看器会在当前光标位置周围显示实时色调映射窗口,这是导航HDR或浮点图像以获得“真正存在的东西”的好方法,而无需对整个图像进行色调映射。