OpenCV FileStorage写连字符和句点

时间:2017-12-02 15:18:56

标签: c++ opencv

我在编写yaml文件时遇到问题。我从三个来源收集一些数据(例如50个)并将数据写入cv :: Mat。

我初始化cv :: FileStorage,然后等到收集数据。

void mainGui::initialize()
{
  cv::FileStorage m_Fs;
  m_Fs.open(m_FsFileName, CV_STORAGE_WRITE);
}

如果有足够的数据,那么我附加已经创建的文件:

void mainGui::save()
{
  m_Fs.open(m_FsFileName, CV_STORAGE_APPEND);

  if(m_Fs.isOpened())
  {
    m_Fs << sensorId.toStdString() << dataMat;
    m_Fs.release();
  }
}

书面输出文件的内容如下:

%YAML:1.0

sensor1: !!opencv-matrix
rows: 50
cols: 3
dt: d
data: [ 7.1709999084472656e+01, -2.5729999542236328e+01,
   -1.4074000549316406e+02 ...]
...
---
sensor2: !!opencv-matrix
rows: 50
cols: 3
dt: d
data: [ 8.1040000915527344e+01, -1.2619999885559082e+01,
   -1.2151999664306641e+02, ...]
...
---
sensor3: !!opencv-matrix
rows: 50
cols: 3
dt: d
data: [ 8.1040000915527344e+01, -1.2619999885559082e+01,
   -1.2151999664306641e+02, ...]

如您所见,它用连字符(---)和句点(...)分隔三个数据。如果我想读取文件,我会收到语法错误。我怎样才能避免这种连字符和句号不被写入?

由于

0 个答案:

没有答案