我正在尝试使用OpenCV网站上提供的教程从YAML文件中读取数据。我使用的是“>>”运营商的建议。
cv::Mat R;
cv::FileStorage fs;
fs.open(filename, cv::FileStorage::READ);
R >> fs["matrix"];
它基本上有效但我希望矩阵是双精度而不是浮点精度。将矩阵R键入双矩阵不起作用。什么是实现这一目标的正确方法。
答案 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
。