如何在 OpenCV 中编辑/更新 YAML 文件?
Posted
技术标签:
【中文标题】如何在 OpenCV 中编辑/更新 YAML 文件?【英文标题】:How to edit / update YAML file in OpenCV? 【发布时间】: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! 【参考方案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 只是在文件末尾添加东西:(以上是关于如何在 OpenCV 中编辑/更新 YAML 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Pipeline Utility Steps 插件更新现有 yaml 文件的内容
我想加载一个 YAML 文件,可能编辑数据,然后再次转储。如何保留格式?