我正在尝试使用OPENCV网站上可用的教程从YAML文件中读取数据。我正在使用建议的">>"操作员。
cv::Mat R;
cv::FileStorage fs;
fs.open(filename, cv::FileStorage::READ);
R >> fs["matrix"];
它基本上是有效的,但我希望矩阵以双重精度而不是浮点精度。将矩阵R键入为双矩阵无法完成工作。实现这一目标的正确方法是什么。
将图像加载为" double Precision" ,aka of Type CV_64F
,图像也需要存储为CV_64F
。
如果将图像保存为"单个精度" ,aka of Type CV_32F
,则可以将其加载为CV_32F
,然后使用:
CV_64F
R.convertTo(R, CV_64F);
您可以检查已保存的矩阵打开YML文件的格式,并检查字段dt
。对于CV_32F
格式,它将具有f
,对于CV_64F
格式,它将具有d
。