我正在尝试将“cv::FileStorage”中包含的内容“读取”到 CvRTrees(CvStatModel 实现之一)中。
“读取”函数需要一个 CvFileStorage* 和一个 CvFileNode*(第二个参数)
似乎我可以从 cv::FileStorage 获得 CvFileStorage,但我无法获得 CvFileNode*。
函数(fs.getFirstTopLevelNode().node 和 fs["someName"])都返回“const CvFileNode*”而不是“CvFileNode*”,并且(另一种解决方案)我无法到达 CvFileStorage* 的内部。
到目前为止,我正在尝试一些解决方案:
string s = "some stuffs" // in the real code, "s" is actually exported from a rtree ("write" function)
cv::FileStorage fs(s, cv::FileStorage::READ + cv::FileStorage::MEMORY);
CvRTrees* rtree = new CvRTrees();
rtree->read(fs.fs,fs.fs->cvGetFileNodeByName("mytree"));
错误:
error C2027: use of undefined type 'CvFileStorage'
CvFileStorage 的定义是: typedef struct CvFileStorage CvFileStorage;
或者
string s = "some stuffs"
cv::FileStorage fs(s, cv::FileStorage::READ + cv::FileStorage::MEMORY);
CvRTrees* rtree = new CvRTrees();
rtree->read(fs.fs,fs["mytree"].node);
错误:
error C2664: 'CvRTrees::read' : cannot convert parameter 2 from 'const CvFileNode *' to 'CvFileNode *'
两种解决方案都在编译时失败(总是因为“读取”的第二个参数)。
你们知道怎么处理吗?
提前致谢。
阿舒姆