Matrix 在OpenCV中保存双值矩阵

Matrix 在OpenCV中保存双值矩阵,matrix,opencv,save,double,Matrix,Opencv,Save,Double,我有一个双(CV_32F)值的OpenCV矩阵。我想把它存到磁盘上。我知道,我可以将其转换为1通道8位IplImage并保存。但是那样的话,我失去了精确性。有没有一种方法可以直接将其保存为32位格式,而不必先进行转换?如果生成的文件具有图像格式,那么我可以将结果作为图像查看,这也很好。您可以始终迭代矩阵并自己编写。如果希望它可以作为图像查看,可以使用的变体。但是,如果使用0-255范围之外的值,我不确定哪些程序能够以本机方式读取图像格式。通过使用cvSave()并使用cvLoad()将其加载回来

我有一个双(CV_32F)值的OpenCV矩阵。我想把它存到磁盘上。我知道,我可以将其转换为1通道8位IplImage并保存。但是那样的话,我失去了精确性。有没有一种方法可以直接将其保存为32位格式,而不必先进行转换?如果生成的文件具有图像格式,那么我可以将结果作为图像查看,这也很好。

您可以始终迭代矩阵并自己编写。如果希望它可以作为图像查看,可以使用的变体。但是,如果使用0-255范围之外的值,我不确定哪些程序能够以本机方式读取图像格式。

通过使用cvSave()并使用cvLoad()将其加载回来,您始终可以从OpenCV“原样”保存任何“对象”(CvMat、IplImage、任何..)。根据我的经验,大多数浮点图像都不能正常工作,我通常用这种方式保存浮点数据。 但是,您不能直接查看存储的数据


我们经常使用的另一种可能性是包含自己构建的OpenEXR。您可以使用此库轻松存储全精度浮点图像,许多第三方应用程序都可以打开EXR文件。请注意,如果我没有弄错的话,OpenCV包括OpenEXR,但上次尝试时,保存/加载浮点图像无法正常工作。但是,您应该首先尝试将fp图像保存为*.exr,也许这已经在最新版本中发挥了神奇的作用。

这是一个旧版本,但我想我应该投入两美分

如果您只想将浮点图像保存到磁盘,而不需要查看它们,那么您可能需要查看便携式浮点映射(PFM)图像格式。非常简单的格式,只保存浮动到磁盘,没有压缩,最小的标题。您可以很快编写自己的读/写代码。这就是我在HDR研究中使用的

正如其他人所指出的,要“查看”浮动图像,您需要问自己一些有关其内容的问题,以及如何合理地将其缩放回可以在显示器上显示的8位范围。您可以考虑MATLAB的图像查看器(IMSID函数),它提供了一些双尺度功能。p>

您还可以考虑保存EXR或HDR格式,并使用PytoMaX内置的HDR图像查看器,为您提供一个单独的窗口,它显示了当前光标位置周围的实时色调窗口。导航HDR或浮点图像是一种很好的方法,可以在不映射整个图像的情况下了解“真正的内容”。

要查看浮点图像的结果吗?是的。我想我的问题可以归结为是否存在每像素超过8位的灰度图像格式。