我正在尝试使用 OpenCV 从 xml 文件中读取数据。数据来自视频记录。
我想做的是写一个“do-while”语句,基本上说“当该帧没有数据时什么都不做”
我尝试在 while 语句中使用 FileNode::empty(),但我认为我没有正确理解语法,因为我不断收到错误“调用没有对象参数的非静态成员函数”
我是一个完全的编程新手,所以我真的不知道我应该如何正确地构造语句。我一直在阅读 OpenCV 的教程和参考手册,但这并没有为我解决任何问题。
下面是 xml 文件开头的一个例外:
<frame_00000>
<pose type_id="opencv-matrix">
<rows>0</rows>
<cols>0</cols>
<dt>u</dt>
<data></data></pose>
<expertCode>3</expertCode>
<autoCode>-1</autoCode></frame_00000>
<frame_00001>
<pose type_id="opencv-matrix">
<rows>0</rows>
<cols>0</cols>
<dt>u</dt>
<data></data></pose>
<expertCode>0</expertCode>
<autoCode>-1</autoCode></frame_00001>
<frame_00002>
<pose type_id="opencv-matrix">
<rows>6</rows>
<cols>1</cols>
<dt>d</dt>
<data>
9.6603986167822176e-02 2.7534827334102827e-02
-7.9839974858475181e-03 2.9772357539313782e+02
2.6446663460538508e+02 1.5645098067258549e+00</data></pose>
<expertCode>0</expertCode>
<autoCode>0</autoCode></frame_00002>
基本上,我想要它做的是查看每个帧节点,确定其中是否有任何数据,如果没有则忽略它们。
任何有关 FileNode::empty() 语句语法的提示都将不胜感激。
编辑:
这是我到目前为止的代码,基于打开 XML 文件的教程
#include "opencv2/opencv.hpp"
#include <fstream>
using namespace cv;
int main()
{
FileStorage fs("output.xml", FileStorage::READ);
do {
;
} while ();
}