繁体   English   中英

带有xml的OpenCV C ++中的Do-while语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM