2012-07-08 31 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