2012-07-08 80 views
1

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

+1

使用YAML库?我认为yaml-cpp很不错。 – Linuxios 2012-07-08 23:53:31

+1

如何处理/读取YAML文件与OpenCV无关,但与编程语言相关。正如你使用的是C++,我同意@Linuxios关于yaml-cpp – 2012-07-10 08:52:12

+1

@Linuxios和diip_thomas OpenCV FileStorage的优点是你可以使用相同的XML代码和YAML代码,因此如果可能的话,我想坚持使用OpenCV! – Rudi 2012-07-20 21:09:41

回答

2

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

0

它看起来像OpenCV有一些本地方式来读取和写入YAML。从this SO回答,我发现下面的 “小抄”,为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文件,似乎最好的方法是将现有文件读入自己的数据类型,进行更改,然后将新数据写入文件。

+0

我正在寻找编辑,即如果他们已经存在但更新的关键值,但FileStorage :: WRITE只是添加文件末尾处的东西:( – Rudi 2012-07-20 21:04:36