具有双精度YAML的Opencv Read Mat

时间:2017-02-15 12:17:28

标签: opencv yaml

我正在尝试使用OpenCV网站上提供的教程从YAML文件中读取数据。我使用的是“>>”运营商的建议。

cv::Mat R;
cv::FileStorage fs;
fs.open(filename, cv::FileStorage::READ);
R >> fs["matrix"];

它基本上有效但我希望矩阵是双精度而不是浮点精度。将矩阵R键入双矩阵不起作用。什么是实现这一目标的正确方法。

1 个答案:

答案 0 :(得分:0)

要将图像加载为"双精度" ,又称CV_64F类型,图像也需要存储为CV_64F

如果图像保存为"单精度" ,又称CV_32F类型,则可以将其加载为CV_32F,然后转换到CV_64F

R.convertTo(R, CV_64F);

您可以检查打开yml文件的已保存矩阵的格式,并检查字段dt。对于CV_32F格式,其格式为f,对于CV_64F格式,其格式为d