我正在尝试使用 FileStorage 使用以下代码读取 XML 文件:
#include <opencv2/opencv.hpp>
int main(int argc, const char * argv[]) {
cv::FileStorage fs("/Users/thewoz/Desktop/01.xml", cv::FileStorage::READ);
return 0;
}
给我以下错误:
persistence.cpp:706: error: (-5:Bad argument) Input file is invalid in function 'open'
这是 xml 文件:
<?xml version="1.0"?>
<images>
"20170720_024951.jpg"
"20170720_025001.jpg"
"20170720_025014.jpg"
"20170720_025023.jpg"
"20170720_025034.jpg"
"20170720_025048.jpg"
"20170720_025103.jpg"
"20170720_025115.jpg"
"20170720_025124.jpg"
"20170720_025133.jpg"
"20170720_025147.jpg"
"20170720_025155.jpg"
"20170720_025211.jpg"
</images>
我不明白问题出在哪里。
OpenCV 不读取任意 XML。
cv::FileStorage
仅用于存储和读取 OpenCV 类型,例如 cv::Mat
。它假定文件具有特定的结构。这是特定于cv::FileStorage
的。
对于您的数据,您通常需要使用 XML 库。 OpenCV 不应该读取任意 XML。