具有 double YAML 的 Opencv Read Mat

标签 opencv yaml

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

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

它基本上可以工作,但我希望矩阵是 double 而不是浮点精度。将矩阵 R 键入为 double 矩阵并不能完成这项工作。实现这一目标的正确方法是什么。

最佳答案

要将图像加载为“ double ”,也就是 CV_64F 类型,图像还需要存储为 CV_64F

如果图像保存为 “单精度”,也就是 CV_32F 类型,您可以将其加载为 CV_32F,然后使用以下方法转换为 CV_64F:

R.convertTo(R, CV_64F);

可以查看保存矩阵的格式打开yml文件,查看dt字段。对于 CV_32F 格式,它将包含一个 f,对于 CV_64F 格式,它将包含一个 d

关于具有 double YAML 的 Opencv Read Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42249192/

相关文章:

javascript - 如何从 application.js 在 rails 中访问 yml 文件?

kubernetes - 将复杂的YAML转换为.tf

python:如何在yaml文件中添加新键和值

python - 在Python中将plt.imshow()更改为cv2.imshow()

c++ - 粗细的画线变白,OpenCv iOS 问题

ruby - 如何表示 aws 内部函数以将 ruby​​ 哈希转换为 yaml

python - Job Scheduler - 用于编写作业定义的 YAML?

iphone - 在 iPhone 上使用 opencv features2d

c++ - StereoBm Opencv函数报错 "object of an abstract class cannot be defined"

c++ - Windows 上的堆损坏,但 Linux 上没有