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