Opencv:使用imwrite保存双矩阵

时间:2014-02-07 14:36:46

标签: c++ c opencv

我有一个由double构成的矩阵(Mat),范围为[0,1]。 当我通过命令imwrite保存它时,生成的图像是完全黑色的。 我想问题是一个投射问题,但我不知道如何解决它。 感谢

2 个答案:

答案 0 :(得分:2)

OpenCV存储双精度数组而不将其转换为其他格式(以及丢失信息)的唯一方法是使用FileStorageimwrite仅限于' char'或者'简短'。

答案 1 :(得分:1)

你得到全黑图像是因为所有图像像素都在[0,1]范围内(保存到图像时实际上是0或1),接近全黑(对于灰度图像或彩色图像)

要使用法线颜色将矩阵保存到图像,首先需要将每个值乘以[0, 255],将双矩阵变换为范围255。如果稍后通过将每个值除以255来加载此图像中的矩阵,请记得转换回来。