C++ 修改YAML文件的一个node节点

C++ 修改YAML文件的一个node节点,第1张

C++ 修改YAML文件的一个node节点

这是相机到激光的外参文件,我需要更改rotation的w,x,y,z,但是不改其他的node

header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: velodyne128
child_frame_id: right_front
transform:
  translation:
    x: 0.51
    y: 0.31
    z: -0.10
  rotation:
    w: 0.20917936691977584
    x: -0.393691854453879
    y: 0.74159674408047471
    z: -0.50128333840348849
YAML::Node _baseNode = YAML::LoadFile("right_front_extrinsics.yaml");
_baseNode["transform"]["rotation"]["w"]= q.w;
_baseNode["transform"]["rotation"]["x"]= q.x;
_baseNode["transform"]["rotation"]["y"]= q.y;
_baseNode["transform"]["rotation"]["z"]= q.z;
ofstream fout("right_front_extrinsics.yaml"); //保存
fout << _baseNode;
 
fout.close();

需要注意的是,这里先加载yaml文件,再覆盖,最后写入

参考:C++ YAML: How to edit/write to a node in a .yaml file - Stack Overflow

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5611337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存