[英]Do-while statement in OpenCV C++ with xml
我正在尝试使用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 ();
}
opencv XML API非常简单,实际上只是要打开/关闭cv :: Mat磁盘。 如果您想做的还不止这些,我将使用常规的XML库。
但是大多数XML解析器并非设计为读取动态变化的文件,而是通常打开文件并构建树形结构。
您能否继续尝试打开文件,检查文件是否已更改,将其关闭,等待然后重新打开?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.