如何将 openCV cv::Mat 保存到图像而不做任何改动

How to save openCV cv::Mat to an image without alterations

我看到其他问题试图回答这个问题(使用类似于 mkuse's method 使用 FileStorage 的方法)。但似乎唯一的方法是将其保存到 .xml 或 .yml

我真的需要一种使用 imwrite() 保存文件的方法,它不会切断我所有的 16 位十进制值。

我真的很想用 .tif 来做,但是 it seems that I can't do that.

必须有另一种方式!

您可以尝试使用 imwrite 以外的其他方式保存它。如果您使用 fstream 将图像数据写入二进制文件,如 this Whosebug question 所示,您不会丢失任何精度。它只是使保存和读取过程变得有点复杂,但您可以轻松地为此编写包装器。

正在做的事情.