OpenCV 加载 yaml 文件时出错

Error while OpenCV load yaml file

本文关键字:出错 文件 yaml 加载 OpenCV      更新时间:2023-10-16

我正在尝试从.yaml文件加载矩阵,但OpenCV给了我以下错误:

OpenCV 错误:解析错误 (vocabularytraindata.yml(132841098(:缺少,在元素之间( 在 icvYMLParseValue 中。

这是写入存储文件,它工作正常:

//save the training data
cv::FileStorage fs; 
fs.open(vocabTrainDataPath, cv::FileStorage::WRITE);
fs << "VocabTrainData" << vocabTrainData;
fs.release();

这是从存储文件中读取的代码:

cv::FileStorage fs; 
//load in vocab training data
fs.open(vocabTrainDataPath, cv::FileStorage::READ);
cv::Mat vocabTrainData;
fs["VocabTrainData"] >> vocabTrainData;

我确定yaml文件已生成,并且已正确设置文件路径。

我已经解决了这个问题。我使用的vocabTrainDataPath之前只是vocabularytraindata.yml。因为我认为它只是与可执行文件放置了相同的路径。但是当写入存储文件时,它成功了。但是从存储文件中读取,我需要从\home设置总词汇训练数据.yml路径。然后它奏效了。

这在我的情况下没有帮助。OpenCV 3.4.1 中的源代码似乎存在问题。解决方法是使用 .JSON 文件扩展名。