C++ 如何在OpenCV中读取XML字符串?
我知道如何将C++ 如何在OpenCV中读取XML字符串?,c++,xml,opencv,C++,Xml,Opencv,我知道如何将cv::Mat实例加载/保存到XML文件中(请参阅) 但我真正需要的是解析包含XML的std::string(或char*),并获取cv::Mat。假设我从数据库中获取XML,而不是从文件中获取。 这可能吗?您可以从OpenCV 2.4.1开始执行 以下是来自以下网站的代码示例: /==存储数据==== FileStorage fs(“.xml”,FileStorage::WRITE+FileStorage::MEMORY); fs-mymatrix; 太棒了。遇到同样问题的任何人,
cv::Mat
实例加载/保存到XML文件中(请参阅)
但我真正需要的是解析包含XML的std::string
(或char*
),并获取cv::Mat
。假设我从数据库中获取XML,而不是从文件中获取。这可能吗?您可以从OpenCV 2.4.1开始执行 以下是来自以下网站的代码示例:
/==存储数据====
FileStorage fs(“.xml”,FileStorage::WRITE+FileStorage::MEMORY);
fs-mymatrix;
太棒了。遇到同样问题的任何人,都不应该像其他lib一样编写FileStorage::READ | | FileStorage::MEMORY之类的东西,而应该使用+来代替。在读回时,如何指定格式(YAML/XML)?我这样问是因为我是以.xml格式编写的。@rdasxy,格式是自动检测的。我不确定,但很可能是基于XML/YML声明决定的tag@xxbidiao您不应该使用+
,您需要的是逻辑或
,而不是布尔或|
//==== storing data ====
FileStorage fs(".xml", FileStorage::WRITE + FileStorage::MEMORY);
fs << "date" << date_string << "mymatrix" << mymatrix;
string buf = fs.releaseAndGetString();
//==== reading it back ====
FileStorage fs(buf, FileStorage::READ + FileStorage::MEMORY);
fs["date"] >> date_string;
fs["mymatrix"] >> mymatrix;