【问题标题】:How to edit / update YAML file in OpenCV?如何在 OpenCV 中编辑/更新 YAML 文件?
【发布时间】:2012-07-08 23:16:57
【问题描述】:

在 OpenCV 中编辑/更新 YAML/YML 文件的最佳方法是什么?

【问题讨论】:

  • 使用 YAML 库?我觉得yaml-cpp还不错。
  • 如何处理/读取 YAML 文件与 OpenCV 无关,而与您的编程语言有关。当您使用 c++ 时,我同意@Linuxios 关于 yaml-cpp
  • @Linuxios 和 diip_thomas OpenCV FileStorage 的优点是您可以对 XML 和 YAML 使用相同的代码,因此如果可能的话,我想坚持使用 OpenCV!

标签: c++ xml opencv yaml yaml-cpp


【解决方案1】:

YAML 中一般不支持直接更新,因为它需要重写更新节点下的整个文件,因此 OpenCV 以及 yaml-cpp 中的原因不支持直接编辑节点值。因此,解决方法是再次重新创建/编写 YAML 结构。

【讨论】:

    【解决方案2】:

    看起来 OpenCV 有一些原生的方式来读写 YAML。从this SO answer,我找到了以下 OpenCV C++ 接口的“备忘单”:

    https://code.ros.org/trac/opencv/export/3163/trunk/opencv/doc/opencv_cheatsheet.pdf

    他们编写 YAML 的一部分示例:

    FileStorage fs("test.yml", FileStorage::WRITE);
    fs << "i" << 5 << "r" << 3.1 << "str" << "ABCDEFGH";
    

    如果您有兴趣更新现有 YAML 文件,最好的方法是将现有文件读入您​​自己的数据类型,进行更改,然后将新数据写入文件。

    【讨论】:

    • 我正在寻找编辑,即更新键值,如果它们已经存在,但 FileStorage::WRITE 只是在文件末尾添加东西:(
    猜你喜欢
    • 2018-12-19
    • 2020-02-27
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2015-06-13
    相关资源
    最近更新 更多